将 Scala 与 Azure DW 的连接转换为 PySpark

Translate Scala connection to Azure DW to PySpark

我正在尝试在 ADW 上更新 table,但到目前为止我发现的唯一途径是通过 scala,我对它不是很熟悉,我想拥有与 PySpark 具有相同的功能。

这是 scala 代码,但我无法翻译它

import java.util.Properties
import java.sql.DriverManager

val jdbcUsername = "xxxxx"
val jdbcPassword = "xxxxx"
val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

val jdbcUrl = s"xxxx"

val connectionProperties = new Properties()

connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")
connectionProperties.setProperty("Driver", driverClass)

val connection = DriverManager.getConnection(jdbcUrl, jdbcUsername, jdbcPassword)
val stmt = connection.createStatement()
val sql = "delete from table where condition"

stmt.execute(sql)
connection.close()

我认为一定有一种通用的方法可以使用 PySpark 在 Azure SQL 上执行命令,但我还没有找到它。

听起来你想直接对 Python 中的 Azure SQL 数据库的 table for Azure Databricks 执行删除操作,但我试图意识到它失败了,因为那里无法为 pyodbcpymssql.

安装 linux odbc 驱动程序

这里是一些关于我的测试的截图。

图 1. 在集群上成功安装 pymssqlpypyodbc,但 pyodbc

失败

图 2. 当尝试连接我的 Azure SQL 数据库

时遇到关于缺少 linux odbc 驱动程序的问题

因此,除了使用官方教程 Use HDInsight Spark cluster to read and write data to Azure SQL database 介绍的 Scala/Java 外,使用 Python 的唯一解决方法是调用实现功能的 webhook url其他 Azure 服务,例如 Python.

中的 Azure Function