Spark JDBC Oracle 使用追加模式写入,如果数据帧具有不同的架构,也会更改表架构



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

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

您可以使用createTableColumnTypes:创建表时要使用的数据库列数据类型,而不是默认值。数据类型信息应以与 CREATE TABLE 列语法相同的格式指定(例如:"name CHAR(64(,注释 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驱动程序。

最新更新