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 而不是 %% 但失败了。

如何插入 TZ 字母?

您可以使用单引号指定这些字母。对于您想要的输出,请使用以下日期和时间模式:

"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|
#+--------------------+