我试过用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')
我得到的错误是:
job\u 201406080403\u 3863/attempt\u 201406080403\u 3863\u m\u000000\u 0/work//app/mapper.py”,第12行,导入nltk导入错误:没有名为nltk的模块
任何有过类似问题的人,请你给出一个详尽的解决方案。
谢谢
1条答案
按热度按时间kd3sttzy1#
我遵循以下方法,在hadoop流中成功地运行了nltk包。
注意:我只使用了nltk包而不是yaml,所以我的答案将只集中在加载nltk包而不是yaml,但我相信它应该也适用于您的问题。
假设您的系统中已经安装了nltk包
第一:
为什么有人会在哪里工作?
答:因为我们将通过命令行提供这个**.mod**压缩文件的路径,所以我们不需要太担心它。
第二:
Map器或.py文件中的更改
第三:最重要的一点我想你可能会错过是
运行map reduce的命令行参数
因此,上述步骤解决了我的问题,我认为它也应该解决其他人。
干杯,