Перевести соединение Scala с Azure DW на PySpark - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь обновить таблицу в 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()

Я думаю, что должен быть общий способ выполнения команд в Azure SQL с использованием PySpark, но я пока не нашел его.

1 Ответ

0 голосов
/ 27 марта 2019

Похоже, вы хотите напрямую выполнить операцию удаления для таблицы базы данных SQL Azure в Python для блоков данных Azure, но я попытался понять, что это не удалось, поскольку нет способа установить драйвер linux odbc для pyodbc и pymssql.

Вот несколько скриншотов о моем тестировании.

Рис. 1. Успешно установлен pymssql, pypyodbc на кластере, но не удалось для pyodbc

enter image description here

Рис. 2. Проблемы с отсутствующим драйвером odbc для Linux при попытке подключиться к базе данных SQL Azure

enter image description here

Таким образом, за исключением использования Scala / Java, представленного в официальном учебном пособии Use HDInsight Spark cluster to read and write data to Azure SQL database, единственным обходным способом использования Python является вызов URL-адреса webhook, который реализует функцию из других служб Azure, таких как функция Azure. в Python.

...