Я хочу ежедневно записывать около 10 ГБ данных в базу данных SQL-сервера Azure с помощью PySpark. В настоящее время с использованием драйвера JDBC, который занимает несколько часов, делая операторы вставки один за другим.
Я планирую использовать azure-sqldb-Разъем свечи, который утверждает, что турбо ускоряет запись, используя массовую вставку.
Я прошел официальный документ: https://github.com/Azure/azure-sqldb-spark. Библиотека написана на Scala и в основном требует использования 2 классов Scala:
import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._
val bulkCopyConfig = Config(Map(
"url" -> "mysqlserver.database.windows.net",
"databaseName" -> "MyDatabase",
"user" -> "username",
"password" -> "*********",
"databaseName" -> "MyDatabase",
"dbTable" -> "dbo.Clients",
"bulkCopyBatchSize" -> "2500",
"bulkCopyTableLock" -> "true",
"bulkCopyTimeout" -> "600"
))
df.bulkCopyToSqlDB(bulkCopyConfig)
Может ли это быть реализовано в используемом в pyspark, как это (используя sc._jvm):
Config = sc._jvm.com.microsoft.azure.sqldb.spark.config.Config
connect= sc._jvm.com.microsoft.azure.sqldb.spark.connect._
//all config
df.connect.bulkCopyToSqlDB(bulkCopyConfig)
Я не эксперт в Python.Кто-нибудь может мне помочь с полным фрагментом, чтобы сделать это.