hok*_*oio 1 python timestamp apache-spark apache-spark-sql pyspark
我有一个 pyspark 数据框,其中有一个字段,时间,有两种格式的时间戳,
"11-04-2019,00:32:13" and "2019-12-05T07:57:16.000Z"
Run Code Online (Sandbox Code Playgroud)
如何将所有时间戳转换为第二种格式,即与此格式匹配的 iso 时间格式?
%Y-%m-%dT%H:%M:%S.%fZ
Run Code Online (Sandbox Code Playgroud)
因此,理想情况下,“11-04-2019,00:32:13”之类的值应该是“2019-11-04T00:32:13.000Z”
您可以先将时间戳转换为时间戳类型,然后使用date_format将它们转换回所需的格式:
df.show(truncate=False)
+------------------------+
|time |
+------------------------+
|11-04-2019 00:32:13 |
|2019-12-05T07:57:16.000Z|
+------------------------+
import pyspark.sql.functions as F
df2 = df.withColumn(
'time',
F.date_format(
F.coalesce(
F.to_timestamp('time'),
F.to_timestamp('time', 'MM-dd-yyyy HH:mm:ss')
),
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
)
)
df2.show(truncate=False)
+------------------------+
|time |
+------------------------+
|2019-11-04T00:32:13.000Z|
|2019-12-05T07:57:16.000Z|
+------------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6705 次 |
| 最近记录: |