Spark SQL - 从预言机导入时,将预言机日期数据类型转换为时间戳(java.sql)不正确



我正在使用Spark SQL从Oracle导入数据,如下所示-

Class.forName("oracle.jdbc.driver.OracleDriver")  
var info : java.util.Properties = new java.util.Properties()  
info.put("user", user)  
info.put("password", password) 
val jdbcDF = spark.read.jdbc(jdbcURL, tableFullName, info)

表架构:

SERVICE_DATE - 日期

导入时的 Spark 将具有"date"数据类型的列转换为"java.sql.timestamp"数据类型。在此转换过程中,我遇到了夏令时之后的日期问题。

例如:

oracle: SERVICE_DATE = 2008-03-09 02:49:00.0 [

日期]火花: SERVICE_DATE = 2008-03-09 03:49:00.0 [时间戳]

将预言机日期转换为 JDBC 时间戳时是否存在此问题?

来自 https://github.com/apache/spark/pull/18411/files/aefd028883bc27cd5929e80dff29d2b15aa114b2

您可以看到,有一个名为oracle.jdbc.mapDateToTimestamp的属性,默认情况下true。如果将其设置为falseDate列不会标记为Timestamp

最新更新