У меня есть приложение ETL, которое загружает данные в Impala с помощью Spark. В процессе работы набор столбцов трансформируется. Существует столбец с меткой времени, который используется для вычисления столбца даты целочисленного типа. Этот расчет выглядит следующим образом:
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