apache-spark - 在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
我应该怎么办?
解决方案
推荐阅读
- docker - CMake在错误的文件夹中找到NetCDF
- python - mysql.connector.errors.DataError: 1292 (22007): 当我尝试使用 UPDATE 语句时,会出现截断不正确的 DOUBLE 值
- python - 使用树信息创建 pandas 列
- c++ - 不直接调用 C++ 函数?
- python - 如何在 cplex python 中编写 subtour 约束
- python - 从 python 中同步云存储?
- reactjs - 在 React 中的 index.js 中获取 URL 参数
- openssl - openssl 为过期的证书返回“验证返回码:0(ok)”
- r - 在两个条件下绘制相同变量的范围
- python - 为什么以下两行代码给出不同的结果?