日期转换 SCALA
DATE CONVERSION SCALA
我只想问一下是否可以在不改变格式的情况下将字符串转换为日期?
.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
有没有办法在不改变原始格式的情况下将字符串转换为日期,或者它只是日期数据类型的格式?
提前谢谢您!
默认情况下,spark 使用 yyyy-MM-dd
日期类型格式。
如果您想将 MM/dd/YYYY
格式设置为 date type
,则 spark 不可能(结果为空值)。
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)
我只想问一下是否可以在不改变格式的情况下将字符串转换为日期?
.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
有没有办法在不改变原始格式的情况下将字符串转换为日期,或者它只是日期数据类型的格式?
提前谢谢您!
默认情况下,spark 使用 yyyy-MM-dd
日期类型格式。
如果您想将 MM/dd/YYYY
格式设置为 date type
,则 spark 不可能(结果为空值)。
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)