gpt4 book ai didi

PySpark-Spark SQL : how to convert timestamp with UTC offset to epoch/unixtime?

转载 作者:行者123 更新时间:2023-12-04 15:40:18 24 4
gpt4 key购买 nike

如何使用 Spark SQL 或 PySpark 将格式为 2019-08-22T23:57:57-07:00 的时间戳转换为 unixtime?

我知道的最相似的函数是unix_timestamp()它不接受带有 UTC 偏移量的上述时间格式。

关于我如何最好使用 Spark SQL 或 PySpark 来解决这个问题有什么建议吗?

谢谢

最佳答案

Java SimpleDateFormat ISO 8601time zone 的图案在本例中是 XXX

因此您需要使用 yyyy-MM-dd'T'HH:mm:ssXXX 作为您的格式字符串。

SparkSQL

spark.sql(
"""select unix_timestamp("2019-08-22T23:57:57-07:00", "yyyy-MM-dd'T'HH:mm:ssXXX")
AS epoch"""
).show(truncate=False)
#+----------+
#|epoch |
#+----------+
#|1566543477|
#+----------+

Spark 数据帧

from pyspark.sql.functions import unix_timestamp

df = spark.createDataFrame([("2019-08-22T23:57:57-07:00",)], ["timestamp"])
df.withColumn(
"unixtime",
unix_timestamp("timestamp", "yyyy-MM-dd'T'HH:mm:ssXXX")
).show(truncate=False)
#+-------------------------+----------+
#|timestamp |unixtime |
#+-------------------------+----------+
#|2019-08-22T23:57:57-07:00|1566543477|
#+-------------------------+----------+

请注意,pyspark 只是 spark 的包装器——通常我发现 scala/java 文档比 python 文档更完整。将来可能会有帮助。

关于PySpark-Spark SQL : how to convert timestamp with UTC offset to epoch/unixtime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58029377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com