【问题标题】:Spark JDBC Oracle write using Append mode also changing the table schema if Dataframe has different schema如果 Dataframe 具有不同的模式,则使用附加模式的 Spark JDBC Oracle 写入也会更改表模式
【发布时间】:2019-08-29 09:29:09
【问题描述】:

如果 Dataframe 具有不同的架构,则使用附加模式的 Spark JDBC Oracle 写入也会更改表架构。 是否有任何选项可以防止 spark 在追加时更改 oracle 元数据?

【问题讨论】:

  • 如果输出的数据不同怎么办?
  • @Murali- 你写得怎么样?你能显示代码吗?
  • 额外的列或数据类型?

标签: oracle apache-spark jdbc


【解决方案1】:

根据spark sql数据源官方文档,见https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html

您可以使用 createTableColumnTypes :创建表时要使用的数据库列数据类型,而不是默认值。数据类型信息应以与 CREATE TABLE 列语法相同的格式指定(例如:“name CHAR(64), cmets VARCHAR(1024)”)。指定的类型应该是有效的 spark sql 数据类型。此选项仅适用于写作。

// Specifying create table column data types on write
jdbcDF.write
  .option("createTableColumnTypes", "name CHAR(64), comments VARCHAR(1024)")
  .jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)

例如,它使用 postgresql 但您可以使用 oracle jdbc driver 。

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2022-01-24
    • 1970-01-01
    • 2022-12-12
    • 2017-02-16
    • 2018-07-14
    • 2016-02-21
    • 2019-02-16
    • 2010-11-16
    相关资源
    最近更新 更多