pig和jython-无法注册udf

7rfyedvj  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(305)

我正在尝试用python-udf编写它;我用的是数据税套餐。当我尝试编写一个简单的自定义项时,例如:

@outputSchema("word:chararray")
def helloworld():  
    return 'Hello, World'

然后在咕噜壳中注册:

REGISTER 'pig.py' USING org.apache.pig.scripting.jython.JythonScriptEngine as myfuncs;

我得到以下错误:
错误2998:未处理的内部错误。org/python/core/pyobject java.lang.noclassdeffounderror:org/python/core/pyobject位于org.apache.pig.scripting.jython.jythonscriptengine.registerfunctions(jythonscriptengine)。java:304)在org.apache.pig.pigserver.registercode(pigserver。java:534)位于org.apache.pig.tools.grunt.gruntparser.processregister(gruntparser。java:423)在org.apache.pig.tools.pigscript.parser.pigscriptparser.parse(pigscriptparser。java:419)在org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser。java:190)在org.apache.pig.tools.grunt.gruntparser.parsestoponerror(gruntparser。java:166)在org.apache.pig.tools.grunt.grunt.run(grunt。java:69)在org.apache.pig.main.run(main。java:490)在org.apache.pig.main.main(main。java:111)在sun.reflect.nativemethodaccessorimpl.invoke0(本机方法)在sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:57)在sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.lang.reflect.method.invoke(方法。java:606)在org.apache.hadoop.util.runjar.main(runjar。java:156)原因:java.lang.classnotfoundexception:在模块[modulecl]中找不到类org.python.core.pyobjectassloader:ana$at com.datastax.bdp.loader.systemclassloader.loadclass(systemclassloader。java:120)在com.datastax.bdp.loader.moduleclassloader.loadclass(moduleclassloader。java:38)在com.datastax.bdp.loader.moduleclassloader.loadclass(moduleclassloader。java:32)

... 14个以上

有人知道是什么导致了这个错误吗?

yc0p9oo0

yc0p9oo01#

将$pig\u home/lib/jython.jar添加到pig\u classpath环境变量中。

相关问题