セットのjsonドキュメントをPIGにロードする際に問題が発生しました。私が持っているのは、持っているフィールドがすべて異なる多くのjsonドキュメントです。必要なフィールドはほとんどのドキュメントにあり、欠落している場合はnull値を取得したいと思います。
最新のPigバージョン(apache gitリポジトリから直接0.12)をダウンロードしてコンパイルしたところ、これがまだ解決されていないことを確認しました。
私が持っているのは次のようなjsonドキュメントです:
{"foo":1,"bar":2,"baz":3}
これを使用してこれをPIGにロードすると
Json1 = LOAD 'test.json' USING JsonLoader('foo:int,bar:int,baz:int');
DESCRIBE Json1;
DUMP Json1;
期待通りの結果が得られます
Json1: {foo: int,bar: int,baz: int}
(1,2,3)
ただし、スキーマ内でフィールドの順序が異なる場合:
Json2 = LOAD 'test.json' USING JsonLoader('baz:int,bar:int,foo:int');
DESCRIBE Json2;
DUMP Json2;
望ましくない結果が得られます:
Json2: {baz: int,bar: int,foo: int}
(1,2,3)
それはすべきだった
(3,2,1)
どうやら、スキーマ定義のフィールド名は、jsonのフィールド名とは何の関係もありません。
必要なのは、特定のフィールドをjsonファイル(ドキュメントが埋め込まれている!)からPIGにロードすることです。
これを解決するにはどうすればよいですか?