6

セットの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にロードすることです。

これを解決するにはどうすればよいですか?

4

1 に答える 1