2
我想構建一個Pig UDF,它對double類型的變量執行一些聚合。爲此,我構建了一個名爲Aggreg的代數UDF。它被稱爲以下腳本:PIG具有參數的代數UDF:組合器優化器錯誤
REGISTER 'Test.jar';
DEFINE Aggreg com.pig.test.Agreg();
records = LOAD '/tmp/Test.csv' USING PigStorage(',') AS (v1:chararray, v2:double);
grouped_rec = GROUP records ALL;
test = FOREACH grouped_rec GENERATE Aggreg(records.v2) AS val;
DUMP test;
這工作正常。然後,我想使用這個UDF的參數,所以我添加了一個帶有一個String
參數的公共構造函數。
我只是改變了DEFINE
語句前面的腳本,但尚未使用的UDF的Java代碼的說法:
DEFINE Aggreg com.pig.test.Agreg('Test');
現在我得到以下錯誤:
ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2018: Internal error. Unable to introduce the combiner for optimization.
任何想法可能來自哪裏?