给定日期时间值:
2021-02-12T16:21:22
我尝试将其转换为 DateType,如下所示:
to_date(to_timestamp(col("Date"), "yyyy-MM-dd'T'HH:mm:ss"), "yyyy-MM-dd")
.cast(DateType)
但是该函数在其原始视图中返回带有日期和时间的值:
2022-02-01T16:21:22
而不是预期:
2022-02-01
更重要的是, printSchema() 告诉我,该类型没有改变:
|-- Date: string (nullable = true)
我做错了什么?
一旦使用了 to_date,就无需进行投射
这应该有效:
.withColumn("asDate", to_date(to_timestamp(col("Date"), "yyyy-MM-dd'T'HH:mm:ss"), "yyyy-MM-dd"))
输入:
+-------------------+
| Date|
+-------------------+
|2021-02-12T16:21:22|
+-------------------+
输出:
+-------------------+----------+
| Date| asDate|
+-------------------+----------+
|2021-02-12T16:21:22|2021-02-12|
+-------------------+----------+
root
|-- Date: string (nullable = true)
|-- asDate: date (nullable = true)