Spark 转换生成未来日期

Posted

技术标签:

【中文标题】Spark 转换生成未来日期【英文标题】:Spark transformations generate future dates 【发布时间】:2020-05-26 18:04:51 【问题描述】:

我有一个使用 Spark 将数据加载到 Impala 的 ETL 应用程序。在此过程中,一组列被转换。有一个时间戳列,用于计算整数类型的日期列。计算如下:

df.select((col("date_time") / 1000).cast(TimestampType) as "ts")
.withColumn("date", date_format($"ts", "yyyyMMdd")

因此,当我在没有任何转换的情况下加载数据或添加时间戳转换时,没有任何问题。但是,当以某种方式添加日期转换时,它会影响结果数据,并且在日期和时间戳列中都会生成未来日期。可能是什么原因?

这里是输入:

2020-05-26 11:40:27.526

预期结果:

2020-05-26 11:40:27.526, 20200526

实际转化结果:

2020-05-31 11:40:27.526,20200531

对于其他一些日期,甚至年份都发生了变化:

2115-05-27 16:32:11.482,21150527

【问题讨论】:

【参考方案1】:

这个问题的原因很简单——原始原始数据集中的未来日期。数据集更新解决了问题

【讨论】:

以上是关于Spark 转换生成未来日期的主要内容,如果未能解决你的问题,请参考以下文章

Spark一出,Hadoop必死?Spark才是大数据的未来?

进入当前日期后如何删除日历未来日期背景蓝色?

Java Spark Naive Bayes - 预测未来时间戳

无法选择当前日期作为未来日期

比拼生态和未来,Spark和Flink哪家强?

在Android中使用未来日期限制日期选择器