2014-02-27 45 views
0

我想在PigLatin閱讀JSON中的嵌套數據JSON數據讀入的Pig Latin

{"info":{"Id":53556,"State":"Ohio"},"time":139140} 
{"info":{"Id":3554,"State":"Calif"},"time":1391407471477} 

我使用

read = load '$json_file' USING JsonLoader('Id : chararray, state : chararray, time : chararray'); 

和存儲讀取的數據做入/tmp/data.csv using PigStorage (',', '-noschema');

但我正在獲取data.csv中的垃圾值。任何想法,如果我讀錯了或存儲不正確?

+0

有人可以評論這個嗎?在使用JsonLoader時有問題嗎? – user1548157

回答

0

LOAD語句中的模式不正確。 信息{ 「ID」:53556, 「國家」: 「俄亥俄」}是其。這個值是一個對象這又是一個無序的名稱/值對,即「ID」:53556「狀態」: 「俄亥俄」

試試這個

read = 
     LOAD 'test.dat' 
     USING JsonLoader(' 
       info:(
         id  : CHARARRAY 
         , state : CHARARRAY) 
       , time : CHARARRAY 
     '); 

proj = 
     FOREACH read 
     GENERATE 
      FLATTEN(info) AS (
        id 
        , state) 
      , time 
     ; 

proj2 = 
     FOREACH proj 
     GENERATE 
       state 
       , time 
     ; 

dump proj2; 

輸出

(Ohio,139140) 
(Calif,1391407471477)