将OffsetDateTimeUdt转换为日期或字符串

时间:2017-09-13 08:21:07

标签: python sql datetime pyspark datetimeoffset

我正在Pyspark工作。 我有一个专栏end_date,我想做一些工作。但我不能因为他的类型:OffsetDateTimeUdt

可以在日期或字符串中转换此类型吗?

价值的实例:2021-08-15T00:00:00.000Z

如果您有任何想法,请告诉我:)

提前致谢

1 个答案:

答案 0 :(得分:0)

通过忽略以下毫秒数来转换为时间戳

x = spark.createDataFrame([("2021-08-15T00:00:00.000Z",)], ['date_str'])
x.select(x.date_str, from_unixtime(unix_timestamp(x.date_str,"yyyy-MM-dd'T'HH:mm:ss'.000Z'"))).show(truncate=False)

输出:

+------------------------+------------------------------------------------------------------------------------------+
|date_str                |from_unixtime(unix_timestamp(date_str, yyyy-MM-dd'T'HH:mm:ss'.000Z'), yyyy-MM-dd HH:mm:ss)|
+------------------------+------------------------------------------------------------------------------------------+
|2021-08-15T00:00:00.000Z|2021-08-15 00:00:00                                                                       |
+------------------------+------------------------------------------------------------------------------------------+