Python 通过spark从azure sql表中删除数据
我在azure sql数据库中有一个表。我想使用pyspark中的jdbc连接器从中删除一些数据 我试过这个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'
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连接并对该连接执行删除查询。