0

问题涉及本地猪 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

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

import sys
print(sys.path)

谢谢,阿米特

4

1 回答 1

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 还捆绑为一个不包含 stdlib 的“裸”jar。如果这在您的类路径上,则可能会导致您的问题。
于 2013-11-08T00:35:57.120 回答