我想知道如何使用 Pyspark sql 从日期时间值中提取日期。
日期时间值如下所示:
DateTime
2018-05-21T00:00:00.000-04:00
2016-02-22T02:00:02.234-06:00
当我现在将其加载到 spark 数据框中并尝试提取日期时(通过
Date() or
Timestamp() and then Date()
我总是收到错误消息,需要日期或时间戳值,但提供的是 DateTime 值。
有人可以帮我从这个值中检索日期吗?我认为,您需要为此提供一个时区 - 但由于我已经在仅提取日期时遇到问题,所以我首先想解决这个问题。
谢谢你和亲切的问候。
最佳答案
Pyspark 有一个 to_date
函数可以从时间戳中提取日期。在您的示例中,您可以通过执行以下操作创建一个仅包含日期的新列:
from pyspark.sql.functions import col, to_date
df = df.withColumn('date_only', to_date(col('date_time')))
如果您尝试转换的列是字符串,您可以设置 to_date
的 format
参数,指定字符串的日期时间格式。
您可以在文档 here 中阅读有关 to_date
的更多信息.
关于python - Pyspark:从日期时间值中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51880774/