Sta*_*ark 2 scala apache-spark apache-spark-sql
我有 Spark 数据框,并尝试向其中添加年、月和日列。但问题是添加 YTD 列后,它不会保留日期和月份列的前导零。
val cityDF= Seq(("Delhi","India"),("Kolkata","India"),("Mumbai","India"),("Nairobi","Kenya"),("Colombo","Srilanka"),("Tibet","China")).toDF("City","Country")
val dateString = "2020-01-01"
val dateCol = org.apache.spark.sql.functions.to_date(lit(dateString))
val finaldf = cityDF.select($"*", year(dateCol).alias("Year"), month(dateCol).alias("Month"), dayofmonth(dateCol).alias("Day"))
Run Code Online (Sandbox Code Playgroud)
我想保留“月”和“日”列中的前导零,但它给我的结果为 1 而不是 01。
因为我使用年月日期列来创建 Spark 分区。所以我想保持前导零完整。所以我的问题是:如何在数据框列中保留前导零。
整数类型可以使用“format_string”函数转换为字符串类型,其中前导零是可能的:
val finaldf =
cityDF
.select($"*",
year(dateCol).alias("Year"),
format_string("%02d", month(dateCol)).alias("Month"),
format_string("%02d", dayofmonth(dateCol)).alias("Day")
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3732 次 |
| 最近记录: |