Ejecución de lib de python externo (NLTK) con transmisión de hadoop

Intenté usar http://blog.cloudera.com/blog/2008/11/sending-files-to-remote-task-nodes-with-hadoop-mapreduce/

zip -r nltkandyaml.zip nltk yaml mv ntlkandyaml.zip /path/to/where/your/mapper/will/be/nltkandyaml.mod import zipimport importer = zipimport.zipimporter('nltkandyaml.mod') yaml = importer.load_module('yaml') nltk = importer.load_module('nltk') 

Y el error que tengo es:

job_201406080403_3863 / intent_201406080403_3863_m_000000_0 / work /./ app / mapper.py “, línea 12, en importación nltk ImportError: No hay un módulo llamado nltk

Cualquiera que se haya enfrentado a un problema similar, ¿puede poner una solución exhaustiva?

Gracias

Seguí el siguiente enfoque y ejecuté el paquete nltk con hadoop streaming correctamente.

nota: solo usé el paquete nltk no yaml, por lo que mi respuesta solo se centrará en cargar el paquete nltk no yaml, pero creo que también debería funcionar para su pregunta.

Suponiendo que ya tiene instalado el paquete nltk en su sistema

primero:

 zip -r nltk.zip nltk mv ntlk.zip /place/it/anywhere/you/like/nltk.mod 

¿Por qué algún lugar funcionará?
Respuesta: – Debido a que proporcionaremos una ruta a este archivo .mod comprimido a través de la línea de comandos, no debemos preocuparnos mucho por ello.

segundo:
cambios en su mapeador o archivo .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 += ["."] 

Tercero: y el más importante, supongo que podría faltar, es

argumento de línea de comandos para ejecutar 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/ 

Por lo tanto, el paso anterior resolvió mi problema y creo que debería resolver otros también.
aclamaciones,