我有一个格式为“fri may 24 00:00:00 bst 2019”的源代码中的日期字符串,我会将其转换为日期,并将其存储在Dataframe中为“2019-05-24”,使用类似于spark 2.0下适用于我的示例的代码
from pyspark.sql.functions import to_date, unix_timestamp, from_unixtime
df = spark.createDataFrame([("Fri May 24 00:00:00 BST 2019",)], ['date_str'])
df2 = df.select('date_str', to_date(from_unixtime(unix_timestamp('date_str', 'EEE MMM dd HH:mm:ss zzz yyyy'))).alias('date'))
df2.show(1, False)
在我的沙盒环境中,我已经更新到spark3.0,现在上面的代码出现了以下错误,在3.0中有没有新的方法来将字符串转换成日期
:org.apache.spark.sparkupgradeexception:由于spark 3.0的升级,您可能会得到不同的结果:无法识别datetimeformatter中的“eee-mmm-dd-hh:mm:ss-zzz-yyyy”模式。
您可以将spark.sql.legacy.timeparserpolicy设置为legacy,以恢复spark 3.0之前的行为。
您可以使用中的指南形成有效的日期时间模式https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html
32条答案
按热度按时间vohkndzv31#
--------+
jjhzyzn032#
---------+
+