DATE CONVERSION SCALA

问题描述 投票:0回答:1

我只想问一下是否可以将字符串转换为日期而不更改其格式?

 .withColumn("birthdate",when(col("birthday").isNotNull,to_date(col("birthday"),"MM/dd/YYYY")).otherwise(null))

我有一个字符串“ 01/01/1990”,但是当我使用to_date(col(“ birthday”),“ MM / dd / YYYY”)时,它变成1990-01-01

是否有任何方法可以将字符串转换为日期而不更改其原始格式,或者仅是日期数据类型的格式?

非常感谢您!

scala dataframe apache-spark apache-spark-sql scala-collections
1个回答
0
投票

默认情况下,spark使用yyyy-MM-dd格式作为日期类型。

如果您想将MM/dd/YYYY格式设置为date type,则无法使用spark(结果为null值。)>

Example:

Converting MM/dd/YYYY to date type:

scala> spark.sql("select date('01/01/1990') as dt").show()
//+----+
//|  dt|
//+----+
//|null| //result null
//+----+


scala> spark.sql("select date('01/01/1990') as dt").printSchema
//root
 //|-- dt: date (nullable = true)

Converting YYYY-MM-dd to date type:

scala> spark.sql("select date('1990-01-01') as dt").show(false)
//+----------+
//|dt        |
//+----------+
//|1990-01-01| //results data
//+----------+


scala> spark.sql("select date('1990-01-01') as dt").printSchema
//root
// |-- dt: date (nullable = true)
© www.soinside.com 2019 - 2024. All rights reserved.