这个问题在这里已经有答案了:
将包含多个字符串日期格式的列强制转换为spark中的datetime(2个答案)
一年前关门了。
我有一个包含日期列的文件。它包含多种格式的日期。我得把所有的都转换成 DD-MM-YYYY hh:mm:ss
.
写入以下查询,但未得到预期结果:-
scala> val a = Seq(("01-Jul-2019"),("01-Jul-2019 00:01:05"),("Jul-01-2019"),("2019-07-01")).toDF("create_dts").select(col("create_dts"))
a: org.apache.spark.sql.DataFrame = [create_dts: string]
scala>
scala> val r = a.withColumn("create_dts", date_format(to_timestamp($"create_dts", "dd-MMM-yyyy").cast("timestamp"), "dd-MM-yyyy hh:mm:ss")).show
+-------------------+
| create_dts|
+-------------------+
|01-07-2019 12:00:00|
|01-07-2019 12:00:00|
| null|
| null|
+-------------------+
2条答案
按热度按时间xsuvu9jc1#
它现在使用的很好
when
条件uidvcgyl2#
你可以用
coalesce
获取第一个非空转换的函数:结果是: