Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #пример как лежат начальные данные, хотим делать reduce по id_
- Dict_Data = [['id_5637', [1, 2, 3, 4, 5]], ['id_1246', [3, 4, 5, 6, 7]], ['id_3357', [1, 4, 6, 2, 4]]]
- map_Dict_Data = []
- #данные в Dict_Data будут лежать в списке списков, ключ для i-го объекта будет лежать в Dict_Data[i][0], значение для
- #значение для i-го объекта будет лежать в Dict_Data[i][1]
- for key in Dict_Data:#идем по всем ключам
- map_Dict_Data.append(run_map(Dict_Data[i]))#считаем, что run_map() возвращает [key, [values]]
- run_sort(map_Dict_Data)# сортируем по ключу
- key_old = map_Dict_Data[0][0]
- Res_Data = []
- Dict_worker_data = {} # в этом дикте для каждой партиции будут лежать все данные,
- #которые необходимо будет запустить в этой партиции
- for i in range(num_worker):
- Dict_worker_data[i] = [] # инициализируем дикт
- for i in len(map_Dict_Data):
- Dict_worker_data[partitioner(map_Dict_Data[i][0])].append(map_Dict_Data[i])
- for j in range(num_worker):# идем по всем партициям
- reducer_Data = []
- for i in range(len(Dict_worker_data[j])): # идем по всем данным, которые партишонер отнес к данной партиции
- key_new = Dict_worker_data[j][i][0]
- if compare(key_new, key_old):
- reducer_Data.append(Dict_worker_data[j][i])
- else:
- Res_Data.append(run_reducer(reducer_Data))
- key_old = key_new
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement