Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. #пример как лежат начальные данные, хотим делать reduce по id_
  2. Dict_Data = [['id_5637', [1, 2, 3, 4, 5]], ['id_1246', [3, 4, 5, 6, 7]], ['id_3357', [1, 4, 6, 2, 4]]]
  3. map_Dict_Data = []
  4. #данные в Dict_Data будут лежать в списке списков, ключ для i-го объекта будет лежать в Dict_Data[i][0], значение для
  5. #значение для i-го объекта будет лежать в Dict_Data[i][1]
  6.  
  7. for key in Dict_Data:#идем по всем ключам
  8.     map_Dict_Data.append(run_map(Dict_Data[i]))#считаем, что run_map() возвращает [key, [values]]
  9.  
  10.  
  11. run_sort(map_Dict_Data)#  сортируем по ключу
  12.  
  13. key_old = map_Dict_Data[0][0]
  14. Res_Data = []
  15.  
  16. Dict_worker_data = {} # в этом дикте для каждой партиции будут лежать все данные,
  17. #которые необходимо будет запустить в этой партиции
  18. for i in range(num_worker):
  19.     Dict_worker_data[i] = [] # инициализируем дикт
  20.  
  21. for i in len(map_Dict_Data):
  22.     Dict_worker_data[partitioner(map_Dict_Data[i][0])].append(map_Dict_Data[i])
  23.  
  24.  
  25. for j in range(num_worker):# идем по всем партициям
  26.     reducer_Data = []
  27.     for i in range(len(Dict_worker_data[j])): # идем по всем данным, которые партишонер отнес к данной партиции
  28.         key_new = Dict_worker_data[j][i][0]
  29.         if compare(key_new, key_old):
  30.             reducer_Data.append(Dict_worker_data[j][i])
  31.         else:
  32.             Res_Data.append(run_reducer(reducer_Data))
  33.             key_old = key_new
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement