私がコーディングしたハイブ UDTF は、指定された出力列の数が 2 であるため、正常に動作します。しかし、すぐに 3 に変更して再デプロイすると、次のエラー メッセージが表示されます。
失敗: SemanticException [エラー 10083]: AS 句で指定されたエイリアスの数が、UDTF によって出力される列の数と一致しません
何か理由はありますか?
これが、初期化メソッドで使用しているコード ブロックです。
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)});
どんな助けでも感謝します。