【发布时间】:2020-04-24 20:20:13
【问题描述】:
我有一个要求,我想通过 pyspark 读取一个以格式(2017-01-12t141206)获取时间戳的列。我尝试了不同论坛上提到的几个功能,例如。 strptime、strftime 等等,但没有任何帮助。有人可以指导我提供相关信息吗?谢谢!
【问题讨论】:
我有一个要求,我想通过 pyspark 读取一个以格式(2017-01-12t141206)获取时间戳的列。我尝试了不同论坛上提到的几个功能,例如。 strptime、strftime 等等,但没有任何帮助。有人可以指导我提供相关信息吗?谢谢!
【问题讨论】:
在这种情况下使用 .to_timestamp(或)from_unixtime,unix_timestamp 函数。
Example:
#using to_timestamp function
spark.sql("""select to_timestamp("2017-01-12t141206","yyyy-MM-dd't'HHmmss") as ts""").show()
#or using from_unixtime, unix_timestamp,cast(timestamp) functions
spark.sql("""select timestamp(from_unixtime(unix_timestamp("2017-01-12t141206","yyyy-MM-dd't'HHmmss"),"yyyy-MM-dd HH:mm:ss")) as ts""")
#or using unix_timestmap, cast to timestamp
spark.sql("""select timestamp(unix_timestamp("2017-01-12t141206","yyyy-MM-dd't'HHmmss")) as ts""").show()
#+-------------------+
#| ts|
#+-------------------+
#|2017-01-12 14:12:06|
#+-------------------+
【讨论】: