我正在尝试更新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 for Azure Databricks的Azure SQL数据库表上执行删除操作,但我试图意识到它失败了,因为没有办法为pyodbc
和pymssql
安装linux odbc驱动程序。
这里有一些关于我测试的截图。
图1.在群集上成功安装了pymssql
,pypyodbc
但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功能。