使用spark将带有时区的时间戳从oracle导入到hive

6jygbczu  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(221)

我想将表从oracle导入到配置单元。此表包含一个数据类型为timestamp with timezone的字段。例子:
46年1月30日03.24.53.000000000+00:00
我使用spark2.2(和scala)导入数据。导入遇到错误:
java.lang.exception:java.sql.sqlexception:不支持的类型-101
我的目标是在hive中存储时间戳和时区。
有人能就如何进行提出意见吗?
提前多谢了。
Spark代码:

val ora_jdbc_url = "jdbc:oracle:thin:/..."

val query = """(SELECT to_char("TEST_TABLE"."COL_WITH_TIMESTAMP") as col_with_timestamp FROM "TEST_TABLE") TEST_TABLE"""

val connectionProperties = new Properties()
connectionProperties.put("user", "Test")
connectionProperties.put("password", "test123")
connectionProperties.put("fetchsize", "100000")
connectionProperties.put("driver", "oracle.jdbc.driver.OracleDriver")

spark.read.jdbc(ora_jdbc_url,query,connectionProperties).show(false)

|-----------------------------------|
|col_with_timestamp                 |
|-----------------------------------|
|10-DEC-18 04.00.33.980000 PM +00:00|
|-----------------------------------|

似乎只有在版本2.3中,才有可能在不将时间戳转换为字符串的情况下导入带有\u时区的时间戳\u:https://issues.apache.org/jira/browse/spark-20557.

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题