PIG LATIN から Python UDF を呼び出すときに問題が発生しました。私は ASCII からバイナリへの変換を行っており、python シェルで動作するスクリプトを python で作成しましたが、それを PIG で Python UDF として呼び出すと、「NameError: グローバル名 'format' が定義されていません」というエラーが表示されます。誰かがこれについてあなたの考えを教えてもらえますか?
---- Python スクリプト
@outputSchema("str:chararray")
def asciitobinary(st):
str = ''.join(format(ord(i),'b').zfill(8) for i in st)
return str
-- PIG スクリプト
REGISTER 'asctobin.py' USING jython as pyudf
A = LOAD 'data.txt' USING PigStorage();
B = FOREACH A GENERATE pyudf.asciitobinary($0);
DUMP B;
Input: 00080
Expected Value: 0011000000110000001100000011100000110000