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 查询的主要内容,如果未能解决你的问题,请参考以下文章

PySpark DataFrames 是不是具有像 Pandas 中的“管道”功能?

Pyspark Dataframes:创建要在 python 中的聚类中使用的特征列

是否可以使用 pyspark 过滤 Spark DataFrames 以返回列值在列表中的所有行?

PySpark DataFrames - 使用不同类型的列之间的比较进行过滤

如何使用 Pyspark 和 Dataframes 查询 Elasticsearch 索引

Pyspark(Dataframes)逐行读取文件(将行转换为字符串)