sparksql jdbc编写器失败,出现“cannot acquire locks error”

zujrkrfu  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(230)

我正在尝试使用sparksqljdbc writer将配置单元表中的5000万行插入到sqlserver表中
mdf1.coalesce(4).write.mode(savemode.append).jdbc(connectionstring,“dbo.test\u table”,connectionproperties)
spark作业在处理1000万行后失败,错误如下
java.sql.batchupdateexception:sql server数据库引擎的示例此时无法获取锁资源。活动用户较少时重新运行语句。要求数据库管理员检查此示例的锁和内存配置,或检查是否存在长时间运行的事务。
但是如果我使用下面的代码行,同样的工作会成功。
mdf1.coalesce(1).write.mode(savemode.append).jdbc(connectionstring,“dbo.test\u table”,connectionproperties)
我尝试打开4个到sqlserver的并行连接来优化性能。但是,在处理了1000万行之后,作业一直失败,并出现“cannot aquire locks error”。另外,如果我将Dataframe限制为只有几百万行(少于1000万行),那么即使有四个并行连接,作业也会成功
有人能告诉我sparksql是否可以用于将大量数据导出到rdbms中,以及我是否需要对sqlserver表进行任何配置更改吗。
提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题