gpt4 book ai didi

sql - Spark : optimise writing a DataFrame to SQL Server

转载 作者:太空狗 更新时间:2023-10-30 01:44:44 25 4
gpt4 key购买 nike

我正在使用下面的代码将一个包含 43 列和大约 2,000,000 行的 DataFrame 写入 SQL Server 中的一个表中:

dataFrame
.write
.format("jdbc")
.mode("overwrite")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.option("url", url)
.option("dbtable", tablename)
.option("user", user)
.option("password", password)
.save()

遗憾的是,虽然它确实适用于小型数据帧,但它要么非常慢,要么对于大型数据帧超时。关于如何优化它的任何提示?

我试过设置 rewriteBatchedStatements=true

谢谢。

最佳答案

尝试将 batchsize 选项添加到至少 > 10000 的语句中(相应地更改此值以获得更好的性能)并再次执行写入.

From spark docs:

The JDBC batch size, which determines how many rows to insert per round trip. This can help performance on JDBC drivers. This option applies only to writing. It defaults to 1000.

也值得一试:

  • numPartitions option增加并行度(这也决定了JDBC最大并发连接数)

  • queryTimeout option 增加写入选项的超时时间。

关于sql - Spark : optimise writing a DataFrame to SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55708079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com