【发布时间】:2016-12-25 11:44:00
【问题描述】:
我有一个从 sql 上下文构建的 spark 数据框。
我使用DATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourly 截断了日期时间字段
现在列类型是字符串。如何将字符串 dataFrame 列转换为 datetime 类型?
【问题讨论】:
标签: apache-spark spark-dataframe
我有一个从 sql 上下文构建的 spark 数据框。
我使用DATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourly 截断了日期时间字段
现在列类型是字符串。如何将字符串 dataFrame 列转换为 datetime 类型?
【问题讨论】:
标签: apache-spark spark-dataframe
您可以使用 trunc(column date, format) 来避免丢失日期数据类型。 有一个 to_date 函数可以将字符串转换为日期
【讨论】:
假设 df 是您的数据框并且要转换的列名是 time_hourly 您可以尝试以下方法:
from pyspark.sql.types import DateType
df.select(df.time_hourly.cast(DateType()).alias('datetime'))
更多信息请见:
1) "cast()" 的文档 https://spark.apache.org/docs/1.6.2/api/python/pyspark.sql.html
2) 数据类型的文档 https://spark.apache.org/docs/1.6.2/api/python/_modules/pyspark/sql/types.html
【讨论】: