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
那么它不可能用火花(结果为空值)。
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)
推荐阅读
- java - JVM LinkageError 和 Signature 区别
- angular - Angular 没有剪贴板的提供者
- python - Python 中的自定义错误
- c# - Xamarin XfxComboBox Show suggestion items on focus
- r - 计算R中数据表行中的唯一值
- java - Websphere 9 中 Java ear-file 的 Java.lang.LinkageError
- python - using 1's in the arrays to make a shape like '+' using numpy in python
- java - Limit JPA Specification query to fetch required data
- php - PHP:如何通过重复值展平多维数组
- python - How to write sentence in notepad using keyboard python package