从databricks中删除postgres中的记录.(pyspark)



所以我使用pyspark从databricks连接到postgres数据库,我可以读取,我可以创建表,也可以更新它。但是我无法删除记录。

dfs = spark.read.format('jdbc')
.option("url", jdbcUrl)
.option("user", user)
.option("password", password)
.option("query", "DELETE FROM meta.test4 WHERE Emp_Id = 1")
.load()

这里的代码段会导致语法错误org.postgresql.util.PSQLException: ERROR: syntax error at or near "FROM"

如何在postgres中删除记录?

spark.read仅用于读取数据。在内部,它将查询包装在SELECT * FROM (<query>)中,因此您的语句实际上变成:

SELECT * FROM (DELETE FROM meta.test4 WHERE Emp_Id = 1)

,这显然会导致语法错误。

如果您想对远程数据库运行DML/DDL操作,您需要使用JDBC的ConnectionStatement类显式连接并运行语句。本教程提供了一个很好的概述。

最新更新