Я пытаюсь узнать о функции MapReduce. В настоящее время я получаю сообщение об ошибке "объект 'int' не подписан". Я следую учебному пособию на другом веб-сайте: https://towardsdatascience.com/a-beginners-introduction-into-mapreduce-2c912bb5e6ac
def find_longest_string(list_of_strings):
longest_string = None
longest_string_len = 0
for s in list_of_strings:
if len(s) > longest_string_len:
longest_string_len = len(s)
longest_string = s
return longest_string
list_of_strings = ['abc','python','dima']
large_list = list_of_strings * 100000000
mapper = len
def chunkify(seq, num):
avg = len(seq) / float(num)
out = []
last = 0.0
while last < len(seq):
out.append(seq[int(last):int(last + avg)])
last += avg
return out
def reducer(p, c):
if p[1] > c[1]:
return p
return c
from multiprocessing import Pool
pool = Pool(8)
data_chunks = chunkify(large_list, 8)
mapped = pool.map(mapper, data_chunks)
reduced = reduce(reducer, mapped)
print(reduced)
В результате выдается самая длинная строка, которая подается в котором ['python', 6]
Я не знаю, что вызвало ошибку. Пожалуйста, помогите.