Skip to content

Commit abba940

Browse files
committed
Create MapReduce.py
1 parent 248d793 commit abba940

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

MapReduce.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import json
2+
3+
class MapReduce:
4+
def __init__(self):
5+
self.intermediate = {}
6+
self.result = []
7+
8+
def emit_intermediate(self, key, value):
9+
self.intermediate.setdefault(key, [])
10+
self.intermediate[key].append(value)
11+
12+
def emit(self, value):
13+
self.result.append(value)
14+
15+
def execute(self, data, mapper, reducer):
16+
for line in data:
17+
record = json.loads(line)
18+
mapper(record)
19+
20+
for key in self.intermediate:
21+
reducer(key, self.intermediate[key])
22+
23+
#jenc = json.JSONEncoder(encoding='latin-1')
24+
jenc = json.JSONEncoder()
25+
for item in self.result:
26+
print jenc.encode(item)

0 commit comments

Comments
 (0)