我的日期格式是:
2006-04-01 01:00:00.000 +0200
但我要求: 2006-04-01
无法从unix时间戳格式识别
valid_wdf
.withColumn("MYDateOnly", to_date(from_unixtime(unix_timestamp("Formatted Date","yyyy-MM-dd"))))
.show()
而且它说的是这样的:
org.apache.spark.sparkupgradeexception:由于升级了spark 3.0,您可能会得到不同的结果:无法在新解析器中解析“2006-04-01 00:00:00.000+0200”。您可以将spark.sql.legacy.timeparserpolicy设置为legacy以恢复spark 3.0之前的行为,或者设置为corrected并将其视为无效的日期时间字符串。
我想知道为什么要用这个图书馆…如果有任何解释将不胜感激。
1条答案
按热度按时间bvjxkvbb1#
让我们在spark 3.0.1中使用以下查询并查看异常。
异常确实说明了sparkupgradeexception的原因,但您必须查看堆栈跟踪的底部,其中显示:
有“未分析的文本发现在索引10”,因为模式
yyyy-MM-dd
不包括输入日期的剩余部分。有关有效的日期和时间格式模式,请参阅datetime模式。最容易使用的
date_format
标准功能。