gpt4 book ai didi

azure - 如何在 pyspark 中使用 azure-sqldb-spark 连接器

转载 作者:行者123 更新时间:2023-12-01 09:03:03 27 4
gpt4 key购买 nike

我想每天使用 PySpark 将大约 10 GB 的数据写入 Azure SQL Server DB。目前使用 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 专家。任何人都可以帮我提供完整的代码片段来完成此任务。

最佳答案

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

df.createOrReplaceTempView('testbulk')

并且必须在 Scala 中执行最后一步:

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

关于azure - 如何在 pyspark 中使用 azure-sqldb-spark 连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53019576/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com