A есть странная проблема с преобразованием даты, прочитанной из файла json в формат ut c. Я Хорватия (часовой пояс Европа / Загреб). Когда я открываю файл JSON со значениями UT C datetime (пример), в зависимости от того, где я его открываю, я получаю разные результаты для одного и того же кода.
Пример:
df.select("start").
withColumn("start_zagreb",from_utc_timestamp(to_timestamp(col("start")),"Europe/Zagreb")).
withColumn("start_frankfurt",from_utc_timestamp(to_timestamp(col("start")),"Europe/Frankfurt")).
withColumn("start_paris",from_utc_timestamp(to_timestamp(col("start")),"Europe/Paris")).
withColumn("start_vienna",from_utc_timestamp(to_timestamp(col("start")),"Europe/Vienna")
Когда Я запускаю его в блокноте jupyter на AWS в Европе (eu-central-1, это во Франкфурте), я получаю это ( все правильно, но Франкфурт ):
+------------------------+-------------------+-------------------+-------------------+-------------------+
|start |start_zagreb |start_frankfurt |start_paris |start_vienna |
+------------------------+-------------------+-------------------+-------------------+-------------------+
|2020-08-02T01:45:00.000Z|2020-08-02 03:45:00|2020-08-02 01:45:00|2020-08-02 03:45:00|2020-08-02 03:45:00|
Так что все времена правильные, кроме Франкфурта.
Если я запустил тот же код на своем ноутбуке (часовой пояс Европа / Загреб) на локальном Spark, я получу следующие результаты ( все неверно, но Франкфурт ):
+------------------------+-------------------+-------------------+-------------------+-------------------+
|start |start_zagreb |start_frankfurt |start_paris |start_vienna |
+------------------------+-------------------+-------------------+-------------------+-------------------+
|2020-08-02T01:55:00.000Z|2020-08-02 05:55:00|2020-08-02 03:55:00|2020-08-02 05:55:00|2020-08-02 05:55:00|
Я пробовал с from_utc_timestamp (to_timestamp (col ("start")) и с from_utc_timestamp (col ("start")) и это не имеет значения.
Кто-нибудь знает, о чем это? Кажется, что если я попытаюсь преобразовать UT C в местное время в той же зоне, в которой я нахожусь, я получаю неверные результаты ...
Версия Spark - 2.4.6.