我尝试使用SparkSQL JDBC Writer将hive表中的5000万行插入到SQLServer表中.Below是我用来插入数据的代码行
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)
我尝试打开与SQLServer的4个并行连接以优化性能。但是这项工作一直在失败,因为"无法获得锁定错误"处理完1000万行后。此外,如果我将数据帧限制为几百万行(少于1000万行),即使有四个并行连接,作业也会成功
有人建议我是否可以使用SparkSQL将大量数据导出到RDBMS中,如果我需要在SQL服务器表上进行任何配置更改。
先谢谢。