猪jython udf导入失败

时间:2013-11-06 12:09:12

标签: apache-pig jython

该问题涉及当地猪0.11.1运行,但最终在EMR的猪上有使用前景。我正在尝试编写一个带有're'模块导入的jython UDF,我在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

我在.bashrc中设置PIG_HOME,问题基本上是什么问题?值得注意的是,以下示例有效

import sys
print(sys.path)

谢谢, 阿米特

1 个答案:

答案 0 :(得分:0)

似乎安装缺少stdlib或无法找到它。 import sys应该工作,因为它内置于运行时本身,而不是re模块,它位于运行时之外的单独python模块中。尝试并导入标准库中的另一个模块,如unittest。我怀疑你会有类似的结果。


@Amit我下载了相同的版本进行确认,我能够在UDF中导入re模块。这听起来像是你本地安装的问题。我建议尝试以下方法:

  1. 删除并重新下载Pig tgz文件。
  2. 如果问题仍然存在,请确认您的类路径中没有替代的jython jar。 Pig与/ Lib目录中的Jython jar捆绑在一起。这个jar里面是python stdlib(包括re模块)。 Jython还捆绑为“裸”jar,不包括stdlib。如果这是在你的类路径上,它可能会导致你的问题。