如何从spark(scala)中不同的年、月和日列中获取日期

Med*_*err 5 scala date dataframe apache-spark

我有一个 DataFrame 包括如下数据:

+----+-----+---+-----+
|Year|Month|Day|...  |
+----+-----+---+-----+
|2012|    2| 20|     |
|2011|    7|  6|     |
|2015|    3| 15|     |
Run Code Online (Sandbox Code Playgroud)

我想添加一个带有日期的列

Sha*_*ica 5

将列合并在一起,然后使用unix_timestampto_date来获取时间戳列。对于输入数据框df

df.withColumn("merge", concat_ws("-", $"Year", $"Month", $"Day"))
  .withColumn("date", to_date(unix_timestamp($"merge", "yyyy-MM-dd").cast("timestamp")))
  .drop("merge")
Run Code Online (Sandbox Code Playgroud)


Mit*_*ril 5

不像Shaido那么复杂,只是

df.withColumn("date", F.to_date(F.concat_ws("-", "Year", "Month", "Day")) ).show()
Run Code Online (Sandbox Code Playgroud)

开发 Spark 2.4。