【问题标题】:How to load date with custom format in Spark如何在 Spark 中以自定义格式加载日期
【发布时间】:2021-05-20 21:57:03
【问题描述】:
我有一个场景,我有一个像 "Tuesday, 09-Aug-11 21:13:26 GMT" 这样的列数据,我想在 Spark 中创建一个架构,但数据类型 TimestampType 和 DateType 无法识别这种日期格式。
使用TimestampType 或DateType 将数据加载到数据框后,我在该特定列中看到NULL 值。
有没有其他选择?
【问题讨论】:
标签:
scala
apache-spark
apache-spark-sql
【解决方案1】:
一种选择是将“星期二,2011 年 8 月 11 日 21:13:26 GMT”作为字符串类型列,并从字符串转换为时间戳,如下所示。
df.show(truncate=false)
+-------------------------------+
|dt |
+-------------------------------+
|Tuesday, 09-Aug-11 21:13:26 GMT|
+-------------------------------+
df.withColumn("dt",to_timestamp(col("dt"),"E, d-MMM-y H:m:s z")).show(truncate=false) //Note - It is converted GMT to IST local timezone.
+-------------------+
|dt |
+-------------------+
|2011-08-10 02:43:26|
+-------------------+