我有一个类似于此示例的数据帧:
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"执行操作时,不需要每次都转换"单词"数据帧