我在PySpark中有一个数据框(使用Databricks),我想将此数据框写入SQL DB(在我的情况下为Azure SQL数据库)。除看起来这会触发对SQL DB的逐行插入(这对于10M +行而言当然不可行)外,此方法工作正常。 有什么方法可以强制PySpark改为使用批量插入?
当前,我仅使用以下命令:
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)
答案 0 :(得分:1)
user8371915表示,Microsoft提供了一个SQL连接器,该连接器提供了用于批量插入数据的功能: github.com/Azure/azure-sqldb-spark