【发布时间】:2022-01-23 01:22:12
【问题描述】:
我正在尝试使用 JDBC 读取 Oracle 表并将数据插入 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 表的样子:
ID DATE
1509808, 2019-11-03 18:00:00.0
我不知道为什么所有 TIMESTAMP 列都更改为 - 6 HOURS 并希望有人已经遇到过这样的问题?
【问题讨论】:
标签: scala apache-spark hive