Многопроцессорность не работает в I Python, но работает в ноутбуке Jupyter - PullRequest
0 голосов
/ 06 мая 2020

У меня есть несколько функций, которые я применяю к огромному набору данных с помощью Python Pathos multiprocessing Pool. Он хорошо работает, когда я выполняю тот же код в записной книжке Jupyter (файл .ipynb), но когда я преобразовываю файл в .py и выполняю его в приглашении anaconda как python <.py file>, происходит сбой и процесс выполняется бесконечно.

Ниже приведен код, который я выполняю. У меня 8 ядер.

from pathos.multiprocessing import ProcessingPool as Pool
from pathos.helpers import cpu_count
from fuzzywuzzy import fuzz

def similarity(base, compare):
    base = str(base)
    compare = str(compare)
    if (base is not None) and (compare is not None):
        compare=compare.split('@')[0]
        fuzz_ratio = fuzz.ratio(base,compare)
    else:
        fuzz_ratio=0
    return fuzz_ratio


df['name1_fuzz_ratio'] = Pool(nodes= cpu_count()).map(similarity,df.BNAME1, df.BEMAIL1)
df['name2_fuzz_ratio'] = Pool(nodes= cpu_count()).map(similarity,df.SNAME1, df.SEMAIL1)

Помогите, пожалуйста, как я могу решить эту проблему? Также, если есть какая-либо другая утилита для ускорения этого процесса, пожалуйста, предложите.

Заранее спасибо.

...