python - Pyspark:从日期时间值中提取日期

标签 python datetime pyspark

我想知道如何使用 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_dateformat 参数,指定字符串的日期时间格式。

您可以在文档 here 中阅读有关 to_date 的更多信息.

关于python - Pyspark:从日期时间值中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51880774/

相关文章:

python - 以 3 位毫秒的日期时间对象的形式读入字符串

带有 Tor 代理的 Python urllib2 抛出 `HTTP Error 403`

java - Hibernate 错误的日期时间值

python - 404 请求没有尾部斜杠到 i18n url

c# - DateTime 到 Hex 并在不转换为 Int64 的情况下反转

pyspark - 在pyspark中组合来自多行的文本

postgresql - Spark 从 Postgres JDBC 表读取速度慢

python - pyspark:将字典数组转换为新列

python - 从具有最多可用空间的元组中查找路径

python - 无故改变列表值的函数