по докам в спарк3 поправили работу с календарями, и теперь в разных диапазонах дат, он считает их по-разному.
У меня проблема проявилась особенно остро, как раз на стыке таких диапазонов. Раньше спарк 2.х считал что -2208988800 это 01.01.1900 00:00:00
А спарк3 теперь считает, что это 31.12.1899 23:30:17
Можно ли как то решить вопрос обновления спарка, без переписывания всех накопленных юникстаймов?
На самом деле там путаница страшная с этой датой.
Если в спарк2 подать тот юникстайм, то будет 1900 год, но 2:30:17, а если вычитать из него 10800 сек (3 часа), то получим ровно 1900 год, 00:00:00
spark.sql("select CAST(-2308988800 - 10800 as TIMESTAMP)").show В спарк2 будет 1900-01-01 00:00:00 В спарк3 1899-12-31 23:30:17
Обсуждают сегодня