[英]spark scala how can I calculate days since 1970-01-01
尋找 Scala 代碼來復制https://www.epochconverter.com/seconds-days-since-y0
我有一個閱讀 avro 消息的火花流作業。 該消息有一個類型為 int 的列並保存自 1970-01-01 以來的天數。 我想將其轉換為日期。
dataFrame.select(from_avro(col("Value"), valueRegistryConfig) as 'value)
.select("value.*")
.withColumn("start_date",'start_date)
start_date 持有一個整數值,如 18022,即自 1970-01-01 以來的天數。 我想將此值轉換為日期
18022 - > 2019 年 5 月 5 日星期日
使用默認日期作為 1970-01-01 並將天數傳遞給 date_add 函數。
這將為您提供日期,但會額外增加 1 天,因此您會減 1。
像這樣的東西:
var dataDF = Seq(("1970-01-01",18091),("1970-01-01",18021),("1970-01-01",18022)).toDF("date","num")
dataDF.select(
col("date"),
expr("date_add(date,num-1)").as("date_add")).show(10,false)
+----------+----------+
|date |date_add |
+----------+----------+
|1970-01-01|2019-07-13|
|1970-01-01|2019-05-04|
|1970-01-01|2019-05-05|
+----------+----------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.