如何在 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 时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在标准 SQL 中将 Epoch 时间戳转换为日期

powershell 获取自Epoch以来的秒数

如何在 Redshift 中将时间戳(具有毫秒)转换为 EPOCH

在Android中将Epoch时间转换为日期并将日期转换为Epoch时间[重复]

PySpark如何找到适当数量的集群

在pyspark(2.2.0)中将CSV文件写入AWS时如何分配访问控制列表(ACL)?