Wpadłem na problem z ładowaniem zestawu dokumentów JSON do PIG. To, co mam, to dużo dokumentów json, które różnią się w polach, które mają, pola, których potrzebuję, są w większości dokumentów i brakuje ich Chciałbym uzyskać wartość pustą.Ładowanie json z różnym schematem do PIG
Właśnie pobrałem i skompilowałem najnowszą wersję Pig (0.12 prosto z repozytorium gap apache) tylko po to, aby się upewnić, że jeszcze nie zostało to rozwiązane.
Co mam jest dokumentem json tak:
{"foo":1,"bar":2,"baz":3}
Kiedy załadować to do PIG pomocą tego
Json1 = LOAD 'test.json' USING JsonLoader('foo:int,bar:int,baz:int');
DESCRIBE Json1;
DUMP Json1;
uzyskać oczekiwane rezultaty
Json1: {foo: int,bar: int,baz: int}
(1,2,3)
Jednak kiedy pola są w innej kolejności w schemacie:
Json2 = LOAD 'test.json' USING JsonLoader('baz:int,bar:int,foo:int');
DESCRIBE Json2;
DUMP Json2;
uzyskać niepożądany rezultat:
Json2: {baz: int,bar: int,foo: int}
(1,2,3)
które powinny być
(3,2,1)
Widocznie nazwy pól w definicji schematu nie mają nic wspólnego z fieldnames w json.
Potrzebuję załadować określone pola z pliku json (z osadzonymi dokumentami!) Do PIG.
Jak rozwiązać ten problem?
Niestety JsonLoader ładuje pola w takiej kolejności, w jakiej się znajdują, niezależnie od ustawionego schematu. –