Apache spark 使用笔记本上的pyspark从表中删除行

Apache spark 使用笔记本上的pyspark从表中删除行,apache-spark,pyspark,pyspark-sql,databricks,Apache Spark,Pyspark,Pyspark Sql,Databricks,我正在Databricks笔记本上编写pyspark脚本来插入/更新/查询cassandra表,但是我找不到从表中删除行的方法,我尝试了spark sql: spark.sql("DELETE from users_by_email where email_address IN ('abc@test.com')") 我也不认为可以使用dataframe删除数据。有什么解决办法吗 Spark不允许对数据帧进行update和Delete查询。您需要在代码中使用Python外部API进行删除 您可以

我正在Databricks笔记本上编写pyspark脚本来插入/更新/查询cassandra表,但是我找不到从表中删除行的方法,我尝试了spark sql:

spark.sql("DELETE from users_by_email where email_address IN ('abc@test.com')")

我也不认为可以使用dataframe删除数据。有什么解决办法吗

Spark不允许对数据帧进行
update
Delete
查询。您需要在代码中使用Python外部API进行删除

您可以查看下面的Python API,它提供了用于删除的
.delete()
函数


您可以加载数据帧并对其进行过滤:

import pyspark.sql.functions as f

df = spark.sql("SELECT * from users_by_email")
df_filtered = df.filter(f.col("email_address") == "abc@test.com")

然后,您可以使用覆盖选项保存数据帧,或者也可以保存在新表中。

您是否可以检查这是否有帮助,或者不删除该行,您只需过滤掉包含cassandra api的行,而不是pyspark