【发布时间】:2019-03-15 18:07:11
【问题描述】:
我想每天使用 PySpark 将大约 10 GB 的数据写入 Azure SQL 服务器数据库。目前使用的是 JDBC 驱动程序,这需要花费数小时来逐个插入语句。
我打算使用 azure-sqldb-spark 连接器,它声称使用批量插入来加速写入。
我浏览了官方文档: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 方面的专家。任何人都可以帮助我完成完整的 sn-p 以完成这项工作。
【问题讨论】:
-
您期待什么帮助?
-
如何在 pyspark 中使用 azure-sqldb-spark 连接器?我知道它可以在 scala 中完成,但我的整个项目都在 python 中。
-
我想我们还没有任何例子请订阅这个问题-github.com/Azure/azure-sqldb-spark/issues/20
-
嘿@AjayKumar 您如何克服 puspark 中的性能问题?我目前遇到性能问题。你能帮帮我吗?
-
@AjayKumar 您引用的 github 链接中的项目不再积极维护。而是使用this link 中的项目。 Microsoft 鼓励我们使用这个项目,该项目支持 Python 和 R 绑定、更易于使用的批量插入数据接口以及许多其他改进。
标签: azure apache-spark pyspark spark-jdbc