Python 通过spark从azure sql表中删除数据

Python 通过spark从azure sql表中删除数据,python,apache-spark,pyspark,azure-sql-server,Python,Apache Spark,Pyspark,Azure Sql Server,我在azure sql数据库中有一个表。我想使用pyspark中的jdbc连接器从中删除一些数据 我试过这个 query=delete from table where condition spark.read\ .format("com.microsoft.sqlserver.jdbc.spark") \ .option("url", 'jdbcurl') \ .option("database", 'db'

我在azure sql数据库中有一个表。我想使用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不会返回任何内容,并且会给我一个错误

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

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

connection.execute("delete statement")

嗨,谢谢你的回复。如果我使用databricks,我可以只在spark中使用scala(如果不是python)和jdbc来完成它吗?使用spark这个删除操作是不可能的,你唯一能做的就是在覆盖模式下写入,这基本上就是删除表并写入新数据。如果您想要使用scala/java,那么您需要遵循相同的过程,比如创建JDBC连接并对该连接执行删除查询。