如何在 PySpark 中将 unix 时间戳列转换为人类可理解的时间戳? [复制]
Posted
技术标签:
【中文标题】如何在 PySpark 中将 unix 时间戳列转换为人类可理解的时间戳? [复制]【英文标题】:How to convert a unix timestamp column in a human comprehensible timestamp in PySpark? [duplicate] 【发布时间】:2021-02-09 12:05:28 【问题描述】:我有一列包含被 Spark 解释为 Long 类型的 unix-timestamp 数据,例如:
+---------------+
| my_timestamp |
+---------------+
| 1584528257638 |
| 1586618807677 |
| 1585923477767 |
| 1583314882085 |
我想将它转换成人类可读的格式,例如有类似的东西
+------------------------+
| my_timestamp |
+------------------------+
|2020-03-18 10:44:17.638 |
|2020-04-11 16:26:47.677 |
|2020-04-03 15:17:57.767 |
|2020-03-04 09:41:22.085 |
我该怎么做?
【问题讨论】:
@AndréMachado 我只是想分享我使用简单类型转换(见答案)转换 unix 时间戳的方法,因为它对我非常有用,但我认为它不是很有用 伙计们,我不明白...我要求转换为时间戳,而您报告为潜在重复的问题是关于转换为日期(除了一个在 Scala 中...)在标记为重复之前进行一些讨论不是更好吗? 【参考方案1】:由于时间戳列以毫秒为单位,只需将其转换为秒并将其转换为 TimestampType
就可以了:
from pyspark.sql.types import TimestampType
import pyspark.sql.functions as F
df.select(
(F.col("my_timestamp") / 1000).cast(TimestampType())
)
【讨论】:
以上是关于如何在 PySpark 中将 unix 时间戳列转换为人类可理解的时间戳? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 jsonb 列中的 unix 整数设置 postgres 时间戳列?