【问题标题】:Pyspark - Convert specific string to date formatPyspark - 将特定字符串转换为日期格式
【发布时间】:2020-08-10 17:32:01
【问题描述】:

我有一个带有Mon-YY 格式的字符串列的日期 pyspark 数据框,例如。 'Jan-17' 我正在尝试将其转换为日期列。 我试过这样做,但没有成功:

df.select(to_timestamp(df.t, 'MON-YY HH:mm:ss').alias('dt'))

是否可以像在 SQL 中那样做,还是我需要编写一个特殊的函数进行转换?

【问题讨论】:

  • 试试df.select(to_timestamp('t',"MMM-yy").alias("dt"))

标签: pyspark apache-spark-sql


【解决方案1】:

您应该使用有效的Java date format。以下将起作用

import pyspark.sql.functions as psf
df.select(psf.to_timestamp(psf.col('t'), 'MMM-YY HH:mm:ss').alias('dt'))

Jan-17 在这种情况下会变成2017-01-01

示例

df = spark.createDataFrame([("Jan-17 00:00:00",'a'),("Apr-19 00:00:00",'b')], ['t','x'])
df.show(2)
+---------------+---+
|              t|  x|
+---------------+---+
|Jan-17 00:00:00|  a|
|Apr-19 00:00:00|  b|
+---------------+---+

转换为时间戳:

import pyspark.sql.functions as psf
df.select(psf.to_timestamp(psf.col('t'), 'MMM-YY HH:mm:ss').alias('dt')).show(2)
+-------------------+
|                 dt|
+-------------------+
|2017-01-01 00:00:00|
|2018-12-30 00:00:00|
+-------------------+

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 2018-08-30
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多