我编码的配置单元 UDTF 工作正常,只要指定的输出列数是两个。但是此刻,我将其更改为三个并重新部署,它显示以下错误消息。
失败: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)});
任何帮助表示赞赏。