Я пытаюсь сравнить временные метки на карте, но Spark, похоже, использует другой часовой пояс или что-то еще, что действительно странно.
Я прочитал фиктивный CSV-файл, как показано ниже, чтобы создать входной фрейм данных:
"ts"
"1970-01-01 00:00:00"
"1970-01-01 00:00:00"
df.show(2)
+-------------------+
| ts |
+-------------------+
|1970-01-01 00:00:00|
|1970-01-01 00:00:00|
+-------------------+
Пока нечего сообщать, но потом:
df.rdd.map { row =>
val timestamp = row.getTimestamp(0)
val timestampMilli = timestamp.toInstant.toEpochMilli
val epoch = Timestamp.from(Instant.EPOCH)
val epochMilli = epoch.toInstant.toEpochMilli
(timestamp, timestampMilli, epoch, epochMilli)
}.foreach(println)
(1970-01-01 00:00:00.0,-3600000,1970-01-01 01:00:00.0,0)
(1970-01-01 00:00:00.0,-3600000,1970-01-01 01:00:00.0,0)
Я не понимаю, почему обе отметки времени не 1970-01-01 00:00:00.0, 0
. Кто-нибудь знает, что мне не хватает?
Примечание: я уже настроил часовой пояс сеанса на UTC , используя следующие свойства.
spark.sql.session.timeZone=UTC
user.timezone=UTC