【问题标题】:How to use azure-sqldb-spark connector in pyspark如何在 pyspark 中使用 azure-sqldb-spark 连接器
【发布时间】: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


【解决方案1】:

目前(截至 2019 年 3 月)Spark 连接器仅支持 Scala API(如文档中的 here 所述)。 因此,如果您在笔记本上工作,则可以在 python 中进行所有预处理,最后将数据帧注册为临时表,例如。 G。 :

df.createOrReplaceTempView('testbulk')

并且必须在 Scala 中完成最后一步:

%scala
//configs...
spark.table("testbulk").bulkCopyToSqlDB(bulkCopyConfig)

【讨论】:

  • 这很好用。在 Pyspark 中实现连接器之前,这种解决方法应该可以完成这项工作。
  • @huichen你知道如何添加'ldap'授权吗?
  • 你的意思是添加 ldap auth 到集群?您可以尝试在init脚本中添加它,这样每次集群启动时都会安装它。
  • @huichen 你能详细说明一下吗
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 2017-05-25
相关资源
最近更新 更多