简体   繁体   English

日期转换 SCALA

[英]DATE CONVERSION SCALA

I just want to ask if it's possible to convert a string to date without changing it's format?我只是想问一下是否可以将字符串转换为日期而不更改其格式?

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

I have a string "01/01/1990" but when I use to_date(col("birthday"),"MM/dd/YYYY"), it becomes 1990-01-01我有一个字符串“01/01/1990”但是当我使用 to_date(col("birthday"),"MM/dd/YYYY") 时,它变成了1990-01-01

Is there any way to convert the string to date without changing it's original format or it is only the format for date datatypes?有没有办法将字符串转换为日期而不改变它的原始格式,或者它只是日期数据类型的格式?

Thank you in advanced !先谢谢了!

By default spark uses yyyy-MM-dd format for date type.默认情况下,spark 使用yyyy-MM-dd格式作为日期类型。

if you want to have MM/dd/YYYY format as date type then its not possible with spark (results null value).如果您想将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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM