【问题标题】:Extract date from a string column containing timestamp in Pyspark从 Pyspark 中包含时间戳的字符串列中提取日期
【发布时间】:2016-05-19 18:01:48
【问题描述】:

我有一个数据框,其日期格式如下:

+----------------------+
|date                  |
+----------------------+
|May 6, 2016 5:59:34 AM|
+----------------------+

我打算以 YYYY-MM-DD 的格式从中提取日期;所以结果应该是上述日期 - 2016-05-06。

但是当我提取时使用以下内容:

df.withColumn('part_date', from_unixtime(unix_timestamp(df.date, "MMM dd, YYYY hh:mm:ss aa"), "yyyy-MM-dd"))

我得到以下日期

2015-12-27

任何人都可以就此提出建议吗?我不打算将我的 df 转换为 rdd 以使用 python 中的 datetime 函数,并希望在它自己的数据框中使用它。

【问题讨论】:

    标签: datetime apache-spark pyspark pyspark-sql


    【解决方案1】:

    您的模式存在一些错误。这是一个建议:

    from_pattern = 'MMM d, yyyy h:mm:ss aa'
    to_pattern = 'yyyy-MM-dd'
    df.withColumn('part_date', from_unixtime(unix_timestamp(df['date'], from_pattern), to_pattern)).show()
    
    +----------------------+----------+
    |date                  |part_date |
    +----------------------+----------+
    |May 6, 2016 5:59:34 AM|2016-05-06|
    +----------------------+----------+
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2020-08-14
    • 2014-03-14
    • 2021-06-27
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    相关资源
    最近更新 更多