【问题标题】:Convert string to date in pyspark在 pyspark 中将字符串转换为日期
【发布时间】:2023-01-10 02:24:39
【问题描述】:

我在采用以下格式的字符串类型的列中有一个日期值:

2016 年 5 月 6 日 09.17.15

我想把它转换成这种格式:

20160506

我试过使用 DATE_FORMAT(TO_DATE(<column>), 'yyyyMMdd') 但返回了 NULL 值。

有没有人对如何在 pyspark 或 spark SQL 中执行此操作有任何想法?

谢谢

【问题讨论】:

    标签: date pyspark apache-spark-sql


    【解决方案1】:

    我懂了!这是我使用的似乎有效的代码:

    FROM_UNIXTIME(UNIX_TIMESTAMP(<column>, 'dd-MMM-yy HH.mm.ss'), 'yyyyMMdd')

    希望这对其他人有帮助!

    【讨论】:

      【解决方案2】:

      您最初的尝试接近解决方案。您只需要在 TO_DATE() 函数中添加格式。这也将起作用:

      DATE_FORMAT(TO_DATE(<col>, 'dd-MMM-yy HH.mm.ss'), 'yyyyMMdd')
      

      对于 pyspark:

      import pyspark.sql.functions as F
      df = df.withColumn('<col>', F.date_format(F.to_date(F.col('<col>'), 'dd-MMM-yy HH.mm.ss'), 'yyyyMMdd'))
      

      【讨论】:

        猜你喜欢
        • 2020-08-15
        • 1970-01-01
        • 2016-10-31
        • 2019-10-27
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 2020-08-10
        • 1970-01-01
        相关资源
        最近更新 更多