gpt4 book ai didi

apache-spark - 从 Spark 2.0 到 3.0 的字符串到日期迁移导致无法识别 DateTimeFormatter 中的 'EEE MMM dd HH:mm:ss zzz yyyy' 模式

转载 作者:行者123 更新时间:2023-12-03 13:56:36 24 4
gpt4 key购买 nike

我有一个来自源的日期字符串,格式为“Fri May 24 00:00:00 BST 2019”,我将使用类似我的示例的代码将其转换为日期并存储为“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)
在我的沙箱环境中,我已更新为 spark 3.0,现在上面的代码出现以下错误,是否有在 3.0 中执行此操作的新方法将我的字符串转换为日期

: org.apache.spark.SparkUpgradeException: You may get a differentresult due to the upgrading of Spark 3.0: Fail to recognize 'EEE MMMdd HH:mm:ss zzz yyyy' pattern in the DateTimeFormatter.

  1. You can set spark.sql.legacy.timeParserPolicy to LEGACY to restore thebehavior before Spark 3.0.
  2. You can form a valid datetime pattern with the guide fromhttps://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html

最佳答案

如果要在较新版本的 spark(>3) 中使用旧格式,则需要设置 spark.conf.set("spark.sql.legacy.timeParserPolicy","LEGACY")或者spark.sql("set spark.sql.legacy.timeParserPolicy=LEGACY") ,这将解决问题。

关于apache-spark - 从 Spark 2.0 到 3.0 的字符串到日期迁移导致无法识别 DateTimeFormatter 中的 'EEE MMM dd HH:mm:ss zzz yyyy' 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62602720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com