您可以查看此文档:Connecting to SQL Databases using JDBC。它为您提供了一些关于write data to JDBC 的示例。
本节介绍如何从名为 diamonds 的现有 Spark SQL 表将数据写入数据库。
%sql -- quick test that this test table exists
select * from diamonds limit 5
以下代码将数据保存到名为 diamonds 的数据库表中。使用保留关键字的列名可能会触发异常。示例表具有名为 table 的列,因此您可以在将其推送到 JDBC API 之前使用 withColumnRenamed() 对其进行重命名。
spark.table("diamonds").withColumnRenamed("table", "table_number")
.write
.jdbc(jdbcUrl, "diamonds", connectionProperties)
Spark 会自动创建一个数据库表,其中包含从 DataFrame 架构确定的适当架构。
默认行为是创建一个新表并在同名表已存在时抛出错误消息。您可以使用 Spark SQL SaveMode 功能来更改此行为。例如,以下是向表格追加更多行的方法:
import org.apache.spark.sql.SaveMode
spark.sql("select * from diamonds limit 10").withColumnRenamed("table", "table_number")
.write
.mode(SaveMode.Append) // <--- Append to the existing table
.jdbc(jdbcUrl, "diamonds", connectionProperties)
您还可以覆盖现有表:
spark.table("diamonds").withColumnRenamed("table", "table_number")
.write
.mode(SaveMode.Overwrite) // <--- Overwrite the existing table
.jdbc(jdbcUrl, "diamonds", connectionProperties)
希望这会有所帮助。