从边缘列表在 Python 中创建 Map Reduce 函数
Creating a Map Reduce Function in Python from edge list
我需要一些帮助从边缘列表在 Python 中创建 Map Reduce 函数。
给定以下列表:
A,B
A,C
A,D
B,C
C,A
C,B
D,A
我的代码应遵循以下格式。我的目标是显示学位列表以及学位计数。
map(key, value):
//key: document name; value: text of the document
for each word w in value:
emit(w, 1)
reduce(key, values):
//key: a word; value: an iterator over counts
result = 0
for each count v in values:
result += v
emit(key, result)
循环对我来说一直是个难题。有人能指出我正确的方向吗?
输出应该如下:
Degree Count
1 2
2 1
3 1
该代码应该适用于任何类似格式的数据集
所以,据我所知,我需要计算每个字母配对的不同值的数量——这将是 "degree"(例如,A 的度数为 3),然后根据程度合计对数——这将是 "count".
键可以是值对吗?
map(key, value):
//key: document name; value: text of the document
for each word w in value:
emit([x,y], 1)
我不确定 MapReduce 是否是解决此问题的最佳方法,但我认为以下内容是有道理的。
首先将每个顶点-边对映射到(Vertex, 1)。然后通过对每个顶点的计数求和来减少。
map(key, value):
//key: vertex; value: edge
emit(key, 1)
reduce(key, values):
//key: vertex; value: an iterator over counts
result = 0
for each count v in values:
result += v
emit(key, result)
这假定输入行是唯一的。
我需要一些帮助从边缘列表在 Python 中创建 Map Reduce 函数。
给定以下列表:
A,B
A,C
A,D
B,C
C,A
C,B
D,A
我的代码应遵循以下格式。我的目标是显示学位列表以及学位计数。
map(key, value):
//key: document name; value: text of the document
for each word w in value:
emit(w, 1)
reduce(key, values):
//key: a word; value: an iterator over counts
result = 0
for each count v in values:
result += v
emit(key, result)
循环对我来说一直是个难题。有人能指出我正确的方向吗?
输出应该如下:
Degree Count
1 2
2 1
3 1
该代码应该适用于任何类似格式的数据集
所以,据我所知,我需要计算每个字母配对的不同值的数量——这将是 "degree"(例如,A 的度数为 3),然后根据程度合计对数——这将是 "count".
键可以是值对吗?
map(key, value):
//key: document name; value: text of the document
for each word w in value:
emit([x,y], 1)
我不确定 MapReduce 是否是解决此问题的最佳方法,但我认为以下内容是有道理的。
首先将每个顶点-边对映射到(Vertex, 1)。然后通过对每个顶点的计数求和来减少。
map(key, value):
//key: vertex; value: edge
emit(key, 1)
reduce(key, values):
//key: vertex; value: an iterator over counts
result = 0
for each count v in values:
result += v
emit(key, result)
这假定输入行是唯一的。