将 PySpark Dataframe 作为批处理写入 SQL DB

Ger*_*ckl 5 apache-spark apache-spark-sql pyspark databricks

我在 PySpark 中有一个数据帧(使用 Databricks),我想将此数据帧写入 SQL DB(在我的例子中为 Azure SQL 数据库)。这工作得很好,只是这似乎会触发逐行插入 SQL DB,这对于 10M+ 行来说当然是不可行的。有没有办法强制 PySpark 使用 Bulk-Inserts 代替?

目前我只是使用这个命令:

df.write.jdbc(url=jdbcUrl, table=targetTable, mode="append", properties=connectionProperties)

在 SQL 端执行的代码如下所示:

(@P0 int,@P1 bit,@P2 bit,@P3 float,@P4 float,@P5 nvarchar(4000),@P6 int,@P7 int,@P8 int)INSERT INTO dbo.MyTable("Index","Sampling10pct","Sampling1pct","Latitude","Longitude","SessionID","Year","Month","Day") VALUES (@P0,@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8)