【发布时间】:2017-12-09 12:42:21
【问题描述】:
我使用 AVRO 文件格式和 Hive 外部表在 Hadoop 中存储了一些 Oracle 表来访问数据。
我在导入时使用 Oracle 的 TO_CHAR 函数将日期和时间戳值存储为格式化字符串。
现在我想用 Spark 将这些确切的数据导出回具有 Date 列的 Oracle 表。我使用命令:
// Create a data frame from the Hive table
val data = sqlContext.sql("select * from avro_table")
// export df to existing oracle table
data.write.mode("overwrite").jdbc(jdbcString, "tableName", prop)
然后我得到错误:
ORA-00902: 无效的数据类型
这是因为它试图将字符串插入日期列。是否有一种安全的方法可以将 Spark 数据帧中的日期/时间戳字符串插入 Oracle 日期/时间戳列?安全我的意思是不要丢失任何时区信息。
【问题讨论】:
-
您能否在问题中包含
data.printSchema和 Oracle 中日期列的格式以使其完整,从而使答案变得“更好”?
标签: oracle hadoop apache-spark hive avro