Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据另一列的值筛选Dataframe列_Python_Apache Spark_Pyspark - Fatal编程技术网

Python 根据另一列的值筛选Dataframe列

Python 根据另一列的值筛选Dataframe列,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,假设我有两个数据帧 **A** **B** | a | b | c | |a| | 1 | 2 | 3 | |1| 我想根据Dataset B中A列中的值过滤dataframe A的内容 WHERE NOT (A.a in (select a from B) 如何实现这一点?要保留左表中右侧有匹配项的所有行,可以使用leftsemijoin。在这种情况下,仅当右表中存在匹配项时才希望保留

假设我有两个数据帧

   **A**                   **B**

| a | b | c |                |a|

| 1 | 2 | 3 |                |1|
我想根据Dataset B中A列中的值过滤dataframe A的内容

WHERE NOT (A.a in (select a from B)

如何实现这一点?

要保留左表中右侧有匹配项的所有行,可以使用
leftsemi
join。在这种情况下,仅当右表中存在匹配项时才希望保留值,在这种情况下,可以使用
leftanti
join:

df = spark.createDataFrame([(1,2,3),(2,3,4)], ["a","b","c"])
df2 = spark.createDataFrame([(1,2)], ["a","b"])

df.join(df2,'a','leftanti').show()
df

df2

结果

+---+---+---+
|  a|  b|  c|
+---+---+---+
|  2|  3|  4|
+---+---+---+

希望这有帮助

对不起,我找不到那个被愚弄的目标。
+---+---+
|  a|  b|
+---+---+
|  1|  2|
+---+---+
+---+---+---+
|  a|  b|  c|
+---+---+---+
|  2|  3|  4|
+---+---+---+