Pyspark sql 在日期类型值中添加字母
Pyspark sql add letter in datetype value
我在 Spark 数据帧中有纪元时间值,例如 1569872588019
,我在 jupyter notebook 中使用 pyspark sql。
我正在使用 from_unixtime
方法将其转换为日期。
这是我的代码:
SELECT from_unixtime(dataepochvalues/1000,'yyyy-MM-dd%%HH:MM:ss') AS date FROM testdata
结果是这样的:2019-04-30%%11:09:11
但我想要的是这样的:2019-04-30T11:04:48.366Z
我尝试在日期中添加 T 和 Z 而不是 %% 但失败了。
如何插入 T
和 Z
字母?
您可以使用单引号指定这些字母。对于您想要的输出,请使用以下日期和时间模式:
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
使用你的例子:
spark.sql(
"""SELECT from_unixtime(1569872588019/1000,"yyyy-MM-dd'T'HH:MM:ss'Z'") AS date"""
).show()
#+--------------------+
#| date|
#+--------------------+
#|2019-09-30T14:09:08Z|
#+--------------------+
我在 Spark 数据帧中有纪元时间值,例如 1569872588019
,我在 jupyter notebook 中使用 pyspark sql。
我正在使用 from_unixtime
方法将其转换为日期。
这是我的代码:
SELECT from_unixtime(dataepochvalues/1000,'yyyy-MM-dd%%HH:MM:ss') AS date FROM testdata
结果是这样的:2019-04-30%%11:09:11
但我想要的是这样的:2019-04-30T11:04:48.366Z
我尝试在日期中添加 T 和 Z 而不是 %% 但失败了。
如何插入 T
和 Z
字母?
您可以使用单引号指定这些字母。对于您想要的输出,请使用以下日期和时间模式:
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
使用你的例子:
spark.sql(
"""SELECT from_unixtime(1569872588019/1000,"yyyy-MM-dd'T'HH:MM:ss'Z'") AS date"""
).show()
#+--------------------+
#| date|
#+--------------------+
#|2019-09-30T14:09:08Z|
#+--------------------+