Pyspark DataFrames 中的嵌套 SELECT 查询

Posted

技术标签:

【中文标题】Pyspark DataFrames 中的嵌套 SELECT 查询【英文标题】:Nested SELECT query in Pyspark DataFrames 【发布时间】:2016-03-09 10:53:41 【问题描述】:

假设我在 Pyspark 中有两个 DataFrames,我想运行一个嵌套的类似 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 元组的值。我将如何一次性执行嵌套查询?

【问题讨论】:

【参考方案1】:

据了解,Spark 不支持 WHERE 子句 (SPARK-4226) 中的子查询。不收集你能得到的最接近的东西是joindistinct 大致相当于这个:

SELECT DISTINCT table1.* 
FROM table1 JOIN table2
WHERE table1.b = table2.b AND table2.c = '1' 

【讨论】:

以上是关于Pyspark DataFrames 中的嵌套 SELECT 查询的主要内容,如果未能解决你的问题,请参考以下文章