spark:无法将字符串转换为数据格式

4sup72z8  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(312)

我无法将字符串格式转换为日期格式。

val df7 = Seq(("01/01/2007 12:00:00 AM"),("01/01/2006 12:00:00 AM"), ("01/01/2008 12:00:00 AM"), ("01/01/2006 12:00:00 AM")).toDF("r1")
df7.show()
df7.select(col("r1"), to_date( substring(col("r1"), 0, 11), "MM/DD/YYYY")  ).show()

注意,在输出中,它只转换具有2006年的字符串

+--------------------+
|                  r1|
+--------------------+
|01/01/2007 12:00:...|
|01/01/2006 12:00:...|
|01/01/2008 12:00:...|
|01/01/2006 12:00:...|
+--------------------+

+--------------------+---------------------------------------------+
|                  r1|to_date(substring(`r1`, 0, 11), 'MM/DD/YYYY')|
+--------------------+---------------------------------------------+
|01/01/2007 12:00:...|                                         null|
|01/01/2006 12:00:...|                                   2006-01-01|
|01/01/2008 12:00:...|                                         null|
|01/01/2006 12:00:...|                                   2006-01-01|
+--------------------+---------------------------------------------+
lymnna71

lymnna711#

请用这条线

df7.select(col("r1"), to_date( substring(col("r1"), 0, 10), "MM/dd/yyyy")  ).show()

分析日期。
代码中有两个更改:
使用长度 10 而不是 11 切断额外的空间
格式字符串区分大小写,并使用java的SimpleDataFormat的格式字符

xmakbtuz

xmakbtuz2#

您不需要子字符串,但要给出确切的时间戳格式。

val df7 = Seq(("01/01/2007 12:00:00 AM"),("01/01/2006 12:00:00 AM"), ("01/01/2008 12:00:00 AM"), ("01/01/2006 12:00:00 AM")).toDF("r1")
df7.select(col("r1"), to_date($"r1", "MM/dd/yyyy hh:mm:ss aa")).show(false)

+----------------------+---------------------------------------+
|r1                    |to_date(`r1`, 'MM/dd/yyyy hh:mm:ss aa')|
+----------------------+---------------------------------------+
|01/01/2007 12:00:00 AM|2007-01-01                             |
|01/01/2006 12:00:00 AM|2006-01-01                             |
|01/01/2008 12:00:00 AM|2008-01-01                             |
|01/01/2006 12:00:00 AM|2006-01-01                             |
+----------------------+---------------------------------------+

相关问题