用Pig解析'复杂'JSON

时间:2012-12-30 21:19:36

标签: json hadoop apache-pig

说我有一些中等复杂的JSON,比如

{
    "revenue": 100,
    "products":[
            {"name": "Apple", "price": 50},
            {"name": "Banana", "price": 50}
    ]
}

显然这有点做作,但是使用JsonLoader将它映射到猪的最佳方法是什么。

我试过

a = LOAD 'test.json' USING
    JsonLoader('revenue:int,products:[(name:chararray,price:int)]');

a = LOAD 'test.json' USING
    JsonLoader('revenue:int,products:[{(name:chararray,price:int)]}');

但是,当我DUMP A时,我得到(100,)

我也试过

a = LOAD '/json/complex.json'
    USING JsonLoader('revenue:int,products:[{name:chararray,price:int}]');

ERROR 1200: <line 1, column 28> mismatched input 'chararray' expecting LEFT_PAREN出错。

解析这个以供将来使用的最佳方法是什么?

由于

1 个答案:

答案 0 :(得分:1)

对后代来说,

a = LOAD 'test.json' USING
    JsonLoader('revenue:int,products:{(name:chararray,price:int)}');