Pyspark 从 PostgreSQL 中删除行

Pyspark delete row from PostgreSQL

PySpark 如何通过执行 DELETE FROM my_table WHERE day = 3 等查询来删除 PostgreSQL 中的行?

SparkSQL 只为 inserting/overriding 条记录提供 API。所以使用像 psycopg2 这样的库可以完成这项工作,但它需要在远程机器上显式编译,这对我来说是行不通的。还有其他建议吗?

Apache Spark 中的数据帧是不可变的。您可以过滤掉不需要的行。

参见documentation

一个简单的例子可以是:

df = spark.jdbc("conn-url", "mytable")
df.createOrReplaceTempView("mytable")
df2 = spark.sql("SELECT * FROM mytable WHERE day != 3")
df2.collect()

目前唯一可行的解​​决方案是安装 psycopg2 以激发主节点并像常规 python 那样调用查询。将该库添加为 py 文件对我来说没有用