这个问题涉及到一个本地的pig 0.11.1运行,但是最终在emr的pig上有一个使用前景。我正在尝试编写一个jythonudf,其中导入了're'模块,我在 register 'xyz.py' with jython as xyz
:
2013-11-06 13:59:47,259 [main] WARN org.apache.pig.scripting.jython.JythonScriptEngine - module file does not exist: re, /home/amit/Servers/Pig/pig-0.11.1/lib/jython-standalone-2.5.3.jar/Lib/re.py
udf只是一个简单的例子:
import re
我有 PIG_HOME
在我的.bashrc中设置,问题是基本上出了什么问题?值得注意的是,下面的例子是有效的
import sys
print(sys.path)
谢谢,阿米特
1条答案
按热度按时间vd2z7a6w1#
似乎安装缺少stdlib或找不到它。
import sys
应该可以工作,因为它与re
位于运行时之外的单独python模块中的模块。尝试导入标准库中的另一个模块,如unittest
. 我想你也会有类似的结果。@amit我下载了相同的版本来确认,并且我能够在udf中导入re模块。听起来你的本地安装有问题。我建议尝试以下方法:
删除并重新下载pig tgz文件。
如果问题仍然存在,请确认类路径中没有替代的jythonjar。pig与/lib目录中的jythonjar捆绑在一起。这个jar的内部是python stdlib(包括re模块)。jython也作为一个“裸”jar打包,不包括stdlib。如果这在你的类路径上,它可能会导致你的问题。