在scala中将字符串日期(不带分隔符)转换为日期格式

Posted

技术标签:

【中文标题】在scala中将字符串日期(不带分隔符)转换为日期格式【英文标题】:converting string date (without separator) to date format in scala 【发布时间】:2019-03-29 22:39:17 【问题描述】:

我在转换带有日期的列时遇到了一些问题。我的日期列看起来像这样“20032016”“ddMMyyyy”。当我转换它时,我只得到空值。 我使用了以下代码:

df.withColumn("reporting_date",date_format(to_date(col("reporting_date"), "ddMMyyyy"), "yyyy-MM-dd")).show 

有人可以帮助我吗?

【问题讨论】:

【参考方案1】:

您的代码示例对我有用:

scala> val df = Seq("20032016").toDF
df: org.apache.spark.sql.DataFrame = [value: string]

scala> df.withColumn("reporting_date",date_format(to_date(col("value"), "ddMMyyyy"), "yyyy-MM-dd")).show
+--------+--------------+
|   value|reporting_date|
+--------+--------------+
|20032016|    2016-03-20|
+--------+--------------+

【讨论】:

以上是关于在scala中将字符串日期(不带分隔符)转换为日期格式的主要内容,如果未能解决你的问题,请参考以下文章

Scala - 如何在 Spark SQL 查询中将日期字符串转换为时间戳?

在scala数据框中将日期格式从MM / dd / yyyy转换为yyyyMMdd [重复]

如何在EXCEL中将字符转成日期 如19970828转成1997-08-28

在 Spark (Scala) 中将时间戳转换为字符串而不会丢失毫秒

在 sparksql 中将日期从字符串转换为日期

在 pyspark SQL 中将字符串日期转换为日期格式