1

我正在尝试使用 SparkSQL JDBC Writer 将 hive 表中的 5000 万行插入到 SQLServer 表中。下面是我用来插入数据的代码行

mdf1.coalesce(4).write.mode(SaveMode.Append).jdbc(connectionString, "dbo.TEST_TABLE", connectionProperties)

处理 1000 万行并出现以下错误后,火花作业失败

java.sql.BatchUpdateException:SQL Server 数据库引擎的实例此时无法获取 LOCK 资源。当活动用户较少时重新运行您的语句。要求数据库管理员检查此实例的锁和内存配置,或检查长时间运行的事务。

但是如果我使用下面的代码行,同样的工作也会成功。

mdf1.coalesce(1).write.mode(SaveMode.Append).jdbc(connectionString, "dbo.TEST_TABLE", connectionProperties)

我正在尝试打开 4 个与 SQLServer 的并行连接以优化性能。但是在处理了 1000 万行之后,该作业不断失败,并出现“无法获取锁错误”。此外,如果我将数据帧限制为几百万行(少于 1000 万行),即使有四个并行连接,作业也会成功

任何人都可以建议我是否可以使用 SparkSQL 将大量数据导出到 RDBMS 中,以及我是否需要对 SQL 服务器表进行任何配置更改。

提前致谢。

4

0 回答 0