簡體   English   中英

spark scala 如何計算自 1970-01-01 以來的天數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM