Я пытаюсь извлечь значение года из даты в 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. Я что-то здесь упускаю?