Я пытаюсь прочитать таблицу 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 ЧАСОВ, и надеюсь,что кто-нибудь уже сталкивался с такой проблемой?