PySpark - 按列的值拆分/筛选数据帧



我有一个类似于此示例的数据帧:

Timestamp | Word | Count
30/12/2015 | example_1 | 3
29/12/2015 | example_2 | 1
28/12/2015 | example_2 | 9
27/12/2015 | example_3 | 7
... | ... | ...

我想按"word"列的值拆分此数据框,以获得数据帧的"列表"(在下一步中绘制一些数字)。例如:

DF1

Timestamp | Word | Count
30/12/2015 | example_1 | 3

DF2

Timestamp | Word | Count
29/12/2015 | example_2 | 1
28/12/2015 | example_2 | 9

DF3

Timestamp | Word | Count
27/12/2015 | example_3 | 7

有没有办法用PySpark(1.6)做到这一点?

它不会有效,但您可以使用过滤器映射唯一值列表:

words = df.select("Word").distinct().flatMap(lambda x: x).collect()
dfs = [df.where(df["Word"] == word) for word in words]

后火花 2.0

words = df.select("Word").distinct().rdd.flatMap(lambda x: x).collect()

除了 zero323 所说的之外,我可能会添加

word.persist()

在创建 DFS 之前,因此当您对每个"DFS"执行操作时,不需要每次都转换"单词"数据帧

相关内容

  • 没有找到相关文章

最新更新