我遇到了將一組json文件加載到PIG中的問題。 我所擁有的是很多json文檔,它們在各自的字段中都有所不同,我需要的字段在大多數文檔中,在缺少whare時我希望得到空值。將不同架構的json加載到PIG中
我剛剛下載並編譯了最新的Pig版本(直接從apache git存儲庫中獲得0.12版本),以確保它尚未解決。
我所擁有的就是這樣一個JSON文件:
{"foo":1,"bar":2,"baz":3}
當我使用這個
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)
然而,當這個裝入PIG字段在架構中的順序不同:
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中。
我該如何解決這個問題?
不幸的是,無論您設置的架構如何,JsonLoader按照原樣加載字段。 – 2013-03-14 10:07:40