我正在尝试在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上执行命令的通用方法,但是我还没有找到它。
答案 0 :(得分:0)
听起来您想直接在Python中为Azure Databricks在Azure SQL数据库的表上执行删除操作,但我试图意识到它失败了,因为无法为pyodbc
安装linux odbc驱动程序和pymssql
。
以下是有关我的测试的屏幕截图。
图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,该URL实现了来自其他Azure服务(例如Python中的Azure Function)的功能。 / p>