python—从pig运行时没有名为happybase的模块

bjg7j2ky  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(276)

我有一个python udf,它使用happybase连接到hbase。如果我从Python2.7运行代码,它会非常好地工作。
但是,当我从pig 0.15.0调用python udf时,我得到以下错误:
error org.apache.pig.tools.grunt.grunt-错误1121:python错误。回溯(最近一次调用last):import happybase importerror:没有名为happybase的模块
在我的pig脚本中,我注册了python脚本(pigtest.py),如下所示:

REGISTER 'pigtest.py' using jython as myfuncs;

我尝试在python脚本中设置happybase路径,如下所示,但没有什么区别:

import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages/happybase')
import happybase

我还尝试将“/usr/local/lib/python2.7/dist packages/happybase”添加到.bashrc文件(我在ubuntu上)的jython\u路径中,但出现了相同的错误。
在我看来,我需要把快乐之路设定在某个地方,但我不知道在哪里。

hfsqlsce

hfsqlsce1#

在jython用户邮件列表的帮助下,我能够解决这个问题。您需要指定happybase文件夹的父目录,而不是像我刚才所做的那样指定happybase目录本身的路径,方法是执行以下操作之一:
在python脚本中将位置附加到sys.path:

import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages')
import happybase


将位置作为环境变量添加到jythonpath(不是jython\u path!):

export JYTHONPATH = $JYTHONPATH:/usr/local/lib/python2.7/dist-packages

相关问题