【问题标题】:Need Pyspark String to Date Conversion Pattern需要 Pyspark 字符串到日期转换模式
【发布时间】:2021-12-11 06:20:10
【问题描述】:

我有一个带有日期时间的字符串字段,格式如下:

Thu Jul 01 09:26:47 UTC 2021

我已经阅读了 date_format 函数的 spark 文档并尝试了这个:

E L dd hh:mm:ss UTC yyyy

我仍然得到 NULL 并且无法将字符串解析为日期时间。任何帮助将不胜感激。

df.select('Created Time', F.to_timestamp(F.col('Created Time'), 'E L dd hh:mm:ss UTC yyyy'))
  .show(1, False)

【问题讨论】:

  • 您是使用to_timestamp 从字符串转换到时间戳,还是使用date_format格式化日期?

标签: apache-spark date pyspark type-conversion


【解决方案1】:

您需要 escape UTC 并将其视为“文本”,而不是日期模式的一部分。

from pyspark.sql.functions import unix_timestamp

df = spark.createDataFrame(["Thu Jul 01 09:26:47 UTC 2021"], "string").toDF("TS_String")

df\
  .withColumn("TS_Converted", unix_timestamp(df.TS_String, "E MMM d h:m:s 'UTC' yyyy")\
  .cast("timestamp"))\
  .show()

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2023-01-10
    相关资源
    最近更新 更多