Happybase を使用して HBase に接続する Python UDF があります。Python 2.7 からコードを実行すると、完全に動作します。
ただし、Pig 0.15.0 から Python UDF を呼び出すと、次のエラーが発生します。
エラー org.apache.pig.tools.grunt.Grunt - エラー 1121: Python エラー。トレースバック (最新の呼び出しは最後): 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 ファイルの JYTHON_PATH に追加しようとしましたが (私は Ubuntu を使用しています)、同じエラーが発生します。
Happybase パスをどこかに設定する必要があるように思えますが、どこにあるのかわかりません。