Spark/Scala - unix_timestamp 返回错误的日期?

Spark/Scala - unix_timestamp returning the wrong date?

我有一段 Spark 代码如下所示:

df //existing dataframe
  .withColumn("input_date", lit("20190105"))
  .withColumn("input_date_epoch", unix_timestamp(col("input_date"), "YYYYMMdd"))

现在,当我 运行 一个 df.describe 返回的数据显示 input_date_epoch 列的所有值都是 1546128000,当我 运行 通过纪元转换器出现为 2018-12-30 00:00:00,而不是 2019-01-05 00:00:00

的预期值

我是不是做错了什么?

格式错误,如果你想要四位数的年份,使用yyyy:

spark.range(5)
  .withColumn("input_date", lit("20190105"))
  .withColumn("input_date_epoch", unix_timestamp(col("input_date"), "yyyyMMdd"))

YYYYY其实是指weekyear,见documentation