繁体   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