Spark JDBC - 如果 table 不存在,如何停止自动创建 table
Spark JDBC - How to stop automatic creation of table if table doesnt exist
我目前正在使用 jdbc 将数据写入现有的 table。
jdbcDF.write
.mode(Savemode.append)
.jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)
我目前使用的代码与上面类似。当给出错误的 table 名称时,它将创建 table 并在那里输入 table 而不是抛出错误。无论如何要停止该功能。
Spark 不支持此行为。您需要围绕它编写自己的逻辑。
根据枚举 SaveMode
上的 ScalaDocs,将数据写入接收器时有以下选项:
Append:Append模式是指将DataFrame保存到数据源时,如果data/table已经存在,则需要DataFrame的内容附加到现有数据。
ErrorIfExists: ErrorIfExists模式是指在将DataFrame保存到数据源时,如果数据已经存在,则预计会抛出异常。
Ignore:Ignore模式是指在将DataFrame保存到数据源时,如果数据已经存在,则保存操作预计不会保存内容DataFrame 并且不更改现有数据。
Overwrite:Overwrite模式是指在将DataFrame保存到数据源时,如果data/table已经存在,则期望现有的数据被 DataFrame 的内容覆盖。
我目前正在使用 jdbc 将数据写入现有的 table。
jdbcDF.write
.mode(Savemode.append)
.jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)
我目前使用的代码与上面类似。当给出错误的 table 名称时,它将创建 table 并在那里输入 table 而不是抛出错误。无论如何要停止该功能。
Spark 不支持此行为。您需要围绕它编写自己的逻辑。
根据枚举 SaveMode
上的 ScalaDocs,将数据写入接收器时有以下选项:
Append:Append模式是指将DataFrame保存到数据源时,如果data/table已经存在,则需要DataFrame的内容附加到现有数据。
ErrorIfExists: ErrorIfExists模式是指在将DataFrame保存到数据源时,如果数据已经存在,则预计会抛出异常。
Ignore:Ignore模式是指在将DataFrame保存到数据源时,如果数据已经存在,则保存操作预计不会保存内容DataFrame 并且不更改现有数据。
Overwrite:Overwrite模式是指在将DataFrame保存到数据源时,如果data/table已经存在,则期望现有的数据被 DataFrame 的内容覆盖。