首页 > 解决方案 > Scala Spark中的年份函数返回错误的年份

问题描述

我正在尝试使用 year 函数从 Scala 中的日期中提取年份值,但它返回的值比实际值少 1 年:

val df = Seq(
  ("1000-01-03 00:00:00")
).toDF("date_val")
.withColumn("conv_date", to_date(col("date_val")))
.withColumn("year_val", year(to_date(col("date_val"))))
.withColumn("year_val_trunc", trunc( to_date(col("date_val")),"year"))
df
.show()

给出输出:

+-------------------+----------+--------+--------------+
|           date_val| conv_date|year_val|year_val_trunc|
+-------------------+----------+--------+--------------+
|1000-01-03 00:00:00|1000-01-03|     999|    0999-01-06|
+-------------------+----------+--------+--------------+

奇怪的是,当我用大于 1000-01-05 的任何值替换日期时,它按预期工作,即将 year_val 提供为 1000。我在这里遗漏了什么吗?

标签: scalaapache-spark

解决方案


推荐阅读