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) 中的子查询。不收集你能得到的最接近的东西是join
和distinct
大致相当于这个:
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 - 使用不同类型的列之间的比较进行过滤