假设我在Pyspark中有两个DataFrame,并且我想在
行上运行嵌套的类似SQL的SELECT查询SELECT * FROM table1
WHERE b IN
(SELECT b FROM table2
WHERE c='1')
现在,我可以使用where
来实现选择查询,如
df.where(df.a.isin(my_list))
鉴于我事先选择了 my_list 元组值。我将如何一次性执行嵌套查询?
答案 0 :(得分:1)
至于知道Spark不支持WHERE
子句(SPARK-4226)中的子查询。没有收集的最接近的事情是join
和distinct
大致相当于:
SELECT DISTINCT table1.*
FROM table1 JOIN table2
WHERE table1.b = table2.b AND table2.c = '1'