Улей UDTF, который я закодировал, работает нормально, поскольку количество указанных выходных столбцов равно двум. Но в тот момент, когда я меняю его на три и повторно развертываю, появляется следующее сообщение об ошибке.
FAILED: SemanticException [Ошибка 10083]: количество псевдонимов, предоставленных в предложении AS, не соответствует количеству столбцов, выводимых UDTF, ожидалось 2 псевдонима, но было получено 3
Есть ли для этого причина?
Вот блок кода, который я использую в методе инициализации.
List<String> fieldNames = new ArrayList<String>(3);
List<ObjectInspector> fieldOIs = new ArrayList<ObjectInspector>(3);
fieldNames.add("word");
fieldNames.add("cnt");
fieldNames.add("ext");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldOIs.add(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
fieldOIs.add(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
return ObjectInspectorFactory.getStandardStructObjectInspector(fieldNames, fieldOIs);
Вот инструкция вперед в методе процесса
forward(new Object[] { "abcdef", Integer.valueOf(123), Integer.valueOf(123)});
Любая помощь приветствуется.