如何在 Pyspark 中将秒数从 Epoch 时间转换为 UTC 时间?
Posted
技术标签:
【中文标题】如何在 Pyspark 中将秒数从 Epoch 时间转换为 UTC 时间?【英文标题】:How to convert seconds from Epoch time to UTC time in Pyspark? 【发布时间】:2019-06-25 19:35:49 【问题描述】:假设我有一个数据框,其列名 epoch 是从纪元时间开始的秒数,我想将其转换为 UTC 时间。如何在 Pyspark 中做到这一点?
我不想硬编码“GMT-7”,我想确保我使用正确的时间偏移量,基于夏令时的 GMT-7 或 GMT-8。我正在运行 Spark 2.1
myDF = myDF.withColumn("epoch_tmst",(myDF.epoch.cast(dataType=TimestampType()))
myDF = myDF.withColumn("epoch_tmst_utc",to_utc_timestamp(myDF.epoch_tmst,"GMT-7"))
【问题讨论】:
欢迎来到 SO。您能否提供您的数据样本和预期输出?提供帮助会更容易。 【参考方案1】:无法通过pyspark方法直接将unixtime转换为UTC时间戳。 (您可以通过 pyspark 分别执行 unix->GMT-7 和 GMT-7->UTC,但看起来这不是您想要的)
把它们变成文字字符串一次,然后使用 Python 的 time 模块怎么样? https://docs.python.org/3/library/time.html#time.gmtime
【讨论】:
以上是关于如何在 Pyspark 中将秒数从 Epoch 时间转换为 UTC 时间?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Redshift 中将时间戳(具有毫秒)转换为 EPOCH