将Scala连接转换为Azure DW到PySpark

问题描述 投票:-1回答:1

我正在尝试更新ADW上的表,但到目前为止我发现的唯一路径是通过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 pyspark databricks
1个回答
0
投票

听起来你想直接在Python for Azure Databricks的Azure SQL数据库表上执行删除操作,但我试图意识到它失败了,因为没有办法为pyodbcpymssql安装linux odbc驱动程序。

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

图1.在群集上成功安装了pymssqlpypyodbcpyodbc失败了

enter image description here

图2.在尝试连接Azure SQL数据库时遇到有关缺少linux odbc驱动程序的问题

enter image description here

因此除了使用官方教程Use HDInsight Spark cluster to read and write data to Azure SQL database引入的Scala / Java之外,只有使用Python的解决方法是调用webhook url来实现其他Azure服务的功能,例如Python中的Azure功能。

© www.soinside.com 2019 - 2024. All rights reserved.