Scala Spark:无法将字符串转换为数据格式
我无法将字符串格式转换为日期格式Scala Spark:无法将字符串转换为数据格式,scala,apache-spark,Scala,Apache Spark,我无法将字符串格式转换为日期格式 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_d
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|
+--------------------+---------------------------------------------+
请用这条线
df7.选择(col(“r1”)至日期(子字符串(col(“r1”),0,10),“MM/dd/yyyy”)。show()
解析日期
代码中有两个更改:
- 使用长度
而不是10
来切断额外的空间11
- 格式字符串区分大小写,并使用Java的
df7.选择(col(“r1”)至日期(子字符串(col(“r1”),0,10),“MM/dd/yyyy”)。show()
解析日期
代码中有两个更改:
- 使用长度
而不是10
来切断额外的空间11
- 格式字符串区分大小写,并使用Java的
- 您不需要使用子字符串,但需要给出确切的时间戳格式
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 |
+----------------------+---------------------------------------+
您不需要使用子字符串,但需要给出确切的时间戳格式
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 |
+----------------------+---------------------------------------+