如何在CDH 4.4 pig中使用streaming_python调用python UDF?

时间:2014-02-18 13:56:02

标签: python hadoop-streaming

我正在为我的猪项目开发一些python UDF。 在第一种方式中,我更喜欢cPython而不是Jython,因为我想使用一些成熟的 像python中的numpy这样的库很顺利。

以下是我的pyudf.py文件中的代码片段:

from pig_util import outputSchema
import numpy as np

@outputSchema("T:double")
def std(input):
    input2 = [float(t[0]) for t in input]
    return np.std(input2)

在pig脚本中,我首先在命令:

上面注册python模块
Register 'pyudf.py' using streaming_python as myfuncs;

然后我可以在下面的部分中调用UDF:

myfuncs.std(..)

整个工作流程可以在桌面上安装的Apache pig(1.2.1)中无错误地向前移动。 但是当我在CDH平台上运行相同的代码时,猪抱怨streaming_python

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2997: Encountered IOException. Could not load ScriptEngine: streaming_python for streaming_python (Supported langs: [javascript, jython, groovy, jruby]) : java.lang.ClassNotFoundException: streaming_python

有人知道CDH如何与streaming_python或任何其他解决方案一起使用?

提前致谢!

Jamin--chenxm35@gmail.com

0 个答案:

没有答案