Spark - 过滤列

时间:2016-09-20 14:10:26

标签: apache-spark pyspark spark-dataframe pyspark-sql

假设我有一个包含两列的Spark`s DataFrame,如下所示:

A | B
--+--
a | 1
a | 2
a | 3
b | 1
b | 4
c | 2

我想通过列A上的唯一值过滤此数据帧来创建另一个数据帧。目前,我正在收集值并添加到列表中,如下所示:

As = [x.A for x in df.select("A").distinct().collect()]

会产生:As: ['a', 'b', 'c']

并过滤原始数据框,如下所示:

for a in As:
    filtered_df = df.filter(df.A == a)

所以,在第一次迭代时,我会有一个像这样的新数据框:

A | B
--+--
a | 1
a | 2
a | 3

在第二次迭代中,如下所示:

A | B
--+--
b | 1
b | 4

等等。

由于这会触发collect(),我试图以某种方式思考这不需要。 这可能吗?如果是这样,怎么样?

0 个答案:

没有答案