通过 spark 从 azure sql table 中删除数据

Delete data from azure sql table through spark

我在 Azure sql 数据库中有一个 table。我想使用 pyspark 中的 jdbc 连接器从中删除一些数据。

我试过了

query=delete from table where condition

spark.read\
    .format("com.microsoft.sqlserver.jdbc.spark") \
    .option("url", 'jdbcurl') \
    .option("database", 'db') \
    .option("user", "user") \
    .option("password", "pass") \
    .option("query",query)

但这似乎不起作用。我不能做 .load() 因为 delete 没有 return 任何东西,它给我一个错误。

我在这里找到了一个在 scala 中使用自定义函数的解决方案,但我想在 python 中使用它。 有办法吗?

Apache Spark 不支持这些类型的查询,除非您不使用 Delta。 为此,您首先需要使用 pyodbc 创建一个数据库连接。 然后尝试 运行 你的查询是这样的:

connection.execute("delete statement")