Почему столбцы отметок времени в кадре данных Spark изменились во время записи в таблицу Hive? - PullRequest
1 голос
/ 08 ноября 2019

Я пытаюсь прочитать таблицу Oracle с помощью JDBC и вставить данные в таблицу Hive, но все значения столбца отметки времени были изменены (-6 часов). Почему это меняет метку времени?

Я пытался использовать "spark.sql.session.timeZone", "UTC" для запуска конфигурации, но это не помогло

val spark: SparkSession = SparkSession
      .builder
      .config(sparkConf)
      .config("spark.sql.session.timeZone", "UTC")
      .enableHiveSupport()
      .getOrCreate()

val dataDF = spark.read.format("jdbc")
    .option("driver", "oracle.jdbc.OracleDriver")
    .option("url", s"jdbc:oracle:thin:@//${configuration("dwh_address")}")
    .option("user", configuration("dwh_username"))
    .option("password", configuration("dwh_password"))
    .option("dbtable", s"(${select * from source_table})")
    .option("fetchSize", configuration("fetch_size"))
    .load()

dataDF.coalesce(1).write.mode("append").insertInto("target_table")


Вот как строка источника в таблицевыглядит так:

ID        DATE

1509808,   2019-11-04 00:00:00.0

Вот как выглядит таблица Hive после INSERT:

ID        DATE

1509808,   2019-11-03 18:00:00.0

Я понятия не имею, почему все столбцы TIMESTAMP изменились на - 6 ЧАСОВ, и надеюсь,что кто-нибудь уже сталкивался с такой проблемой?

1 Ответ

0 голосов
/ 08 ноября 2019

Я полагаю, что ваш столбец TIMESTAMP в Spark является DateType. Установка конфигурации "spark.sql.session.timeZone" в значение "UTC" имеет некоторые последствия только в том случае, если вы отформатируете метку времени как строку, но дата будет сохранена в объекте Date, где часовой пояс не имеет значения.

Если вы хотите получить доступ к нему снова в формате UTC, вы можете получить временную метку и привести ее в действие или использовать «spark.sql.session.timeZone», чтобы изменить часовой пояс по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...