【问题标题】:Getting SparkUpgrade exception while trying to convert string to unix_timestamp datatype in pyspark dataframe尝试将字符串转换为 pyspark 数据帧中的 unix_timestamp 数据类型时出现 SparkUpgrade 异常
【发布时间】:2021-12-27 20:52:37
【问题描述】:

我正在使用 spark3.1.1 并尝试使用以下代码将字符串数据类型转换为 unix_timestamp 数据类型。

pattern = 'yyyy/MM/dd hh:mm:ss aa'
file_new = file1.withColumn('Incident_DateTime', unix_timestamp(file1['Incident_DateTime'], pattern).cast('timestamp'))  
file_new.select('Incident_DateTime').show(5, False)

所有操作都出错 -> 选择/显示/显示。 PFB 快照和帮助

org.apache.spark.SparkUpgradeException:由于 Spark 3.0 的升级,您可能会得到不同的结果:无法识别 DateTimeFormatter 中的 'yyyy/MM/dd hh:mm:ss aa' 模式。 1) 您可以将 spark.sql.legacy.timeParserPolicy 设置为 LEGACY 以恢复 Spark 3.0 之前的行为。 2)您可以使用https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html的指南形成有效的日期时间模式

【问题讨论】:

    标签: apache-spark pyspark casting


    【解决方案1】:

    来自您问题中的链接:

    "am-pm: 这输出 am-pm-of-day。模式字母计数必须是 1.",

    所以模式应该只有一个'a':

    'yyyy/MM/dd hh:mm:ss a'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-06
      • 2020-10-02
      • 2018-02-19
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2021-10-17
      相关资源
      最近更新 更多