gpt4 book ai didi

scala - 如何在 Spark (Scala) 中获取带前导零的整数值

转载 作者:行者123 更新时间:2023-12-01 21:50:25 25 4
gpt4 key购买 nike

我有 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"))

output screenshot

我想保留月份和日期列中的前导零,但它给我的结果是 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")
)

关于scala - 如何在 Spark (Scala) 中获取带前导零的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com