Ho riscontrato un problema durante il caricamento di un set di documenti json in PIG. Quello che ho sono molti documenti JSON che variano tutti nei campi che hanno, i campi di cui ho bisogno sono nella maggior parte dei documenti e in whare mancante mi piacerebbe avere un valore nullo.Caricamento di JSON con uno schema diverso in PIG
Ho appena scaricato e compilato l'ultima versione di Pig (0.12 direttamente dal repository git di apache) solo per essere sicuri che non sia ancora stato risolto.
Quello che ho è un documento JSON come questo:
{"foo":1,"bar":2,"baz":3}
Quando carico questo in PIG utilizzare questo
Json1 = LOAD 'test.json' USING JsonLoader('foo:int,bar:int,baz:int');
DESCRIBE Json1;
DUMP Json1;
ottengo i risultati attesi
Json1: {foo: int,bar: int,baz: int}
(1,2,3)
Tuttavia quando i campi sono in un ordine diverso nello schema:
Json2 = LOAD 'test.json' USING JsonLoader('baz:int,bar:int,foo:int');
DESCRIBE Json2;
DUMP Json2;
ottengo un risultato indesiderato:
Json2: {baz: int,bar: int,foo: int}
(1,2,3)
che avrebbe dovuto essere
(3,2,1)
A quanto pare i nomi dei campi nella definizione dello schema non hanno nulla a che fare con i nomi di campo in JSON.
Quello che mi serve è caricare campi specifici da un file JSON (con documenti incorporati!) In PIG.
Come si risolve?
Sfortunatamente JsonLoader carica i campi nell'ordine così come sono, indipendentemente dallo schema impostato. –