Пример загрузки внешнего пакета python nltk см. Ответ Запуск внешних библиотек Python (NLTK) с потоковой передачей Hadoop Я использовал следующий подход и успешно запустил пакет nltk с потоковой передачей hadoop.
Предположим, у вас уже есть пакет или (nltk в моем случае) в вашей системе
first:
zip -r nltk.zip nltk
mv ntlk.zip /place/it/anywhere/you/like/nltk.mod
Почему где-нибудь будет работать?Ответ: - Поскольку мы предоставим путь к этому .mod заархивированному файлу через командную строку, нам не нужно сильно беспокоиться об этом.
секунда:изменения в вашем картографическом или .py файле
#Hadoop cannot unzip files by default thus you need to unzip it
import zipimport
importer = zipimport.zipimporter('nltk.mod')
nltk = importer.load_module('nltk')
#now import what ever you like from nltk
from nltk import tree
from nltk import load_parser
from nltk.corpus import stopwords
nltk.data.path += ["."]
третье: аргумент командной строки для запуска map-Reduce
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
-file /your/path/to/mapper/mapper.py \
-mapper '/usr/local/bin/python3.4 mapper.py' \
-file /your/path/to/reducer/reducer.py \
-reducer '/usr/local/bin/python3.4 reducer.py' \
-file /your/path/to/nltkzippedmodfile/nltk.mod \
-input /your/path/to/HDFS/input/check.txt -output /your/path/to/HDFS/output/
Таким образом, вышеуказанный шаг решил мою проблему, и я думаю, что он должен решить и другие.веселит,