1

作成した Python UDF を使用する単純な Pig スクリプトがあります。UDF 部分を削除すると、スクリプトは正常に完了します。しかし、UDF を登録しようとすると、次のエラーが発生します。

ERROR 2997: Encountered IOException. File pig_test/py_udf_substr.py does not exist

これは私のUDFです:

@outputSchema("chararray")
def get_fistsn(data,n):
    return data[:n]

これは私の豚のスクリプトです:

REGISTER 'pig_test/py_udf_substr.py' USING jython as pyudf;

A = load 'pig_test/sf.txt' using PigStorage(',')
as (Unique_flight_ID,Year,Month,Day,DOW,
Scheduled_departure_time,Scheduled_arrival_time,
Airline,Flight_number,Tail_number,Plane_model,
Seat_configuration,Departure_delay,Origin_airport,
Destination_airport,Distance_travelled,Taxi_time_in,
Taxi_time_out,Cancelled,Cancellation_code,target);

B = FOREACH A GENERATE Unique_flight_ID, pyudf.get_fistsn($0,3);

DUMP B;

HUE を使用して Pig を実行しています。データと UDF の両方が同じ HDFS の場所 (pig_test) にあります。

4

2 に答える 2

0

エディターで、 をクリックしてPropertiesから、としてResources選択py_udf_substr.pyしてfileいただけますか?

次に、スクリプトで次のようにします。

pyudf として jython を使用して 'py_udf_substr.py' を登録します。

于 2015-04-09T04:23:24.203 に答える