【发布时间】:2016-08-07 19:44:02
【问题描述】:
df1:
Timestamp:
1995-08-01T00:00:01.000+0000
有没有办法使用 pyspark.无法提供代码,我是新来的火花。我不知道如何继续。
【问题讨论】:
标签: apache-spark pyspark
df1:
Timestamp:
1995-08-01T00:00:01.000+0000
有没有办法使用 pyspark.无法提供代码,我是新来的火花。我不知道如何继续。
【问题讨论】:
标签: apache-spark pyspark
您可以使用 unix_timestamp 解析此时间戳:
from pyspark.sql import functions as F
format = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
df2 = df1.withColumn('Timestamp2', F.unix_timestamp('Timestamp', format).cast('timestamp'))
然后,您可以在新的 Timestamp 列中使用 dayofmonth:
df2.select(F.dayofmonth('Timestamp2'))
关于这些函数的更多细节可以在 pyspark functions documentation 中找到。
【讨论】:
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 会正常工作,因为"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 返回空值。
代码:
df1.select(dayofmonth('Timestamp').alias('day'))
【讨论】: