Сценарий SparkSQL JDBC завершается с ошибкой "Не удается получить блокировки"
Я пытаюсь вставить 50 миллионов строк из таблицы улья в таблицу SQLServer, используя SparkSQL JDBC Writer. Ниже приведена строка кода, которую я использую для вставки данных.
mdf1.coalesce(4).write.mode(SaveMode.Append).jdbc(connectionString, "dbo.TEST_TABLE", connectionProperties)
Задание искры не выполняется после обработки 10 миллионов строк с приведенной ниже ошибкой
java.sql.BatchUpdateException: экземпляр SQL Server Database Engine не может получить ресурс LOCK в это время. Повторите ваше заявление, когда активных пользователей станет меньше. Попросите администратора базы данных проверить блокировку и конфигурацию памяти для этого экземпляра или проверить наличие длительных транзакций.
Но та же работа будет успешной, если я использую приведенную ниже строку кода.
mdf1.coalesce (1).write.mode (SaveMode.Append).jdbc (connectionString, "dbo.TEST_TABLE", connectionProperties)
Я пытаюсь открыть 4 параллельных соединения с SQLServer для оптимизации производительности. Но после обработки 10 миллионов строк задание продолжает работать с ошибкой "не удается получить блокировки блокировки". Кроме того, если я ограничу фрейм данных только несколькими миллионами строк (менее 10 миллионов), задание выполнится успешно даже с четырьмя параллельными соединениями.
Кто-нибудь может мне подсказать, можно ли использовать SparkSQL для экспорта огромных объемов данных в СУБД и нужно ли мне вносить какие-либо изменения в конфигурацию таблицы SQL-сервера.
Заранее спасибо.