python - 通过spark从azure sql表中删除数据
问题描述
我在 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")
推荐阅读
- angular - 找不到模块:错误:无法在 Angular 6 中解析“./package”
- node.js - 导入模块的问题
- javascript - 如何在 addHTML 中添加顶部和底部边距
- java - 在部署到 tomcat 服务器的 Spring web app 中,catalina.properties 文件被 spring 自动加载和检测。如何?
- python - Python 2.7 Dict 正在覆盖自身
- sql - 更新 SQL Server 存储过程 - 在参数中切换列
- c++ - Epsilon Greedy 在少量武器上的表现优于 UCB
- html - 屏幕阅读器应读取 aria-label 并忽略带有 for 属性的标签
- arduino - Arduino 加速度计 mpu6050,无原始数据
- python - 概括我的python函数