首页 > 解决方案 > 在pyspark中分区后如何分组?

问题描述

我有一系列格式为src_node dst_node edge_weigth. 我想从.txt文件中读取它们,然后将它们用于某些算法。但在应用算法之前,我需要清理和分组数据。我也只想使用RDD's.

输入数据的问题在于它有循环,首先我想过滤掉循环,然后将 RDD 重新分区为 8 个分区。但是想要访问每个节点的传出边等,所以对于每个节点我需要存储一组(dst,weight)s。也想有好的表现(怕一个遣返和一个groupby会造成两次shuffle)

到目前为止,我已经想出了这段代码,但我不知道如何完成它:

links = sc.textFile("./inputs/graph1.txt") \
    .map(lambda link: links.split(" "))\
    .filter(lambda link: link[0] != link[1])

这是一个示例输入数据:

1 2 5
1 3 2
1 1 2
2 3 1
3 1 2
3 2 4

我应该怎么办?

标签: apache-sparkpyspark

解决方案


推荐阅读