Я создаю поисковый словарь с помощью других словарей.
У меня 32 ядра и 64 ГБ ОЗУ, где я его запускаю.
names
- это огромный массив с примерно 28184057
элементами. Когда я пытаюсь применить pool.map
к «именам», я получаю следующую ошибку:
struct.error: 'i' format requires -2147483648 <= number <= 2147483647
Это мой код:
pool = mp.Pool(32)
uni_lookup = pool.map(self.create_lookup_dict, names)
pool.close()
А create_lookup_dict
содержит следующий код:
def create_lookup_dict(self, word):
lookup_word_level = {word: list(set(i[0] for i in self.groups.items() \
if word in i[1]))}
final = []
if self.tag_dict.get(word, 0) is 0:
print("No tag")
return (word, lookup_word_level[word])
if self.secondary_category_tag_dict.get(word, 0) is 0:
print("No secondary category tag")
return (word, lookup_word_level[word])
for i in lookup_word_level[word]:
if self.tag_dict[i].intersection(self.tag_dict[word]) and \
self.secondary_category_tag_dict[i].intersection(self.secondary_category_tag_dict[word]):
final.append(i)
return (word, final)
Чего мне не хватает?