to-u-date无法解析spark 3.0中的日期

xytpbqjk  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(521)

嗨,我想用 to_date() 但我有以下例外。
sparkupgradeexception:由于spark 3.0的升级,您可能会得到不同的结果:无法在新解析器中解析“12/1/2010 8:26”。您可以将spark.sql.legacy.timeparserpolicy设置为legacy以恢复spark 3.0之前的行为,或者设置为corrected并将其视为无效的日期时间字符串。
例外情况建议我应该使用遗留时间解析器,对于初学者,我不知道如何将其设置为遗留时间。
这是我的实现

dfWithDate = df.withColumn("date", to_date(col("InvoiceDate"), "MM/dd/yyyy"))

我的日期格式如下

+--------------+
|   InvoiceDate|
+--------------+
|12/1/2010 8:26|
|12/1/2010 8:26|
|12/1/2010 8:26|
|12/1/2010 8:26|
|12/1/2010 8:26|
332nm8kg

332nm8kg1#

spark.sql("set spark.sql.legacy.timeParserPolicy=LEGACY")
df.withColumn("date", to_date(col("InvoiceDate"), "MM/dd/yyyy")).show()

+--------------+----------+
|   InvoiceDate|      date|
+--------------+----------+
|12/1/2010 8:26|2010-12-01|
+--------------+----------+

# in above code spark refers SparkSession

相关问题