gpt4 book ai didi

python - 在 PySpark 中将 isodate 字符串转换为日期格式

转载 作者:行者123 更新时间:2023-12-02 02:27:17 32 4
gpt4 key购买 nike

我正在使用 PySpark 开发机器学习项目。我有很多记录,其中一个字段存储从 MongoDB 获取的日期。该日期是一个字符串,但包含 isodate 格式的日期。

如何将其转换为 Apache Spark 允许的日期格式之一?如果可能的话,我需要转换包含此日期字段的整个列。

以下是该字段的 JSON 格式示例:

“日期”:“2020-11-09T07:27:57.078Z”

最佳答案

只需使用 df.select(F.col('date').cast('timestamp')) 将列转换为时间戳。如果您想要日期类型,请转换为日期。

import pyspark.sql.functions as F

df = spark.createDataFrame([['2020-11-09T07:27:57.078Z']]).toDF('date')
df.show()
+------------------------+
|date |
+------------------------+
|2020-11-09T07:27:57.078Z|
+------------------------+

>>> df.printSchema()
root
|-- date: string (nullable = true)

# cast to timestamp
df2 = df.select(F.col('date').cast('timestamp'))

>>> df2.printSchema()
root
|-- date: timestamp (nullable = true)

df2.show()
+-----------------------+
|date |
+-----------------------+
|2020-11-09 07:27:57.078|
+-----------------------+

# cast to date
df3 = df.select(F.col('date').cast('date'))

>>> df3.printSchema()
root
|-- date: date (nullable = true)

df3.show()
+----------+
| date|
+----------+
|2020-11-09|
+----------+

关于python - 在 PySpark 中将 isodate 字符串转换为日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65464705/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com