如何在pyspark中转换人类可理解的时间戳中的unix时间戳列?

hec6srdp  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(310)

这个问题在这里已经有答案了

如何在spark中将unix时间戳转换为日期(7个答案)
将sparkDataframe中的时间戳转换为日期(7个答案)
两个月前关门了。
我有一个列,其中包含由spark解释为long type的unix时间戳数据,例如:

+---------------+
| 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 |

我该怎么做?

pvcm50d1

pvcm50d11#

因为timestamp列是以毫秒为单位的,所以只需将其转换为秒并将其转换为 TimestampType 这样就可以了:

from pyspark.sql.types import TimestampType
import pyspark.sql.functions as F

df.select( 
      (F.col("my_timestamp") / 1000).cast(TimestampType())
)

相关问题