我试图使用JDBC读取Oracle表并将数据插入到Hive表中,但是所有timestamp列的值均已更改(-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表的外观:
ID DATE
1509808,2019-11-03 18:00:00.0
我不知道为什么所有TIMESTAMP列都更改为-6 HOURS,并希望有人已经遇到了此类问题?