【问题标题】: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'))