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