Mapreduce Pig JsonLoader问题-未正确解析自定义json

Mapreduce Pig JsonLoader问题-未正确解析自定义json,mapreduce,apache-pig,Mapreduce,Apache Pig,我是pig的新手,正在尝试用以下结构解析json {"id1":197,"id2":[ {"id3":"109.11.11.0","id4":"","id5":1391233948301}, {"id3":"10.10.15.81","id4":"","id5":1313393100648}, ... ]} 上面的文件名为jsonfile.txt alias = load 'jsonfile.txt' using JsonLoader('id1:int,id2:[id

我是pig的新手,正在尝试用以下结构解析json

{"id1":197,"id2":[ 
    {"id3":"109.11.11.0","id4":"","id5":1391233948301},
    {"id3":"10.10.15.81","id4":"","id5":1313393100648},
    ...
]}
上面的文件名为jsonfile.txt

alias = load 'jsonfile.txt' using JsonLoader('id1:int,id2:[id3:chararray,id4:chararray,id5:chararray]');
这就是我得到的错误

错误org.apache.pig.tools.grunt.grunt-错误1200:不匹配的输入“id3”应为右括号


你知道我可能做错了什么吗?

你的JSON模式格式不好

复杂数据类型的格式如下所示:

资料来源:

换句话说,[]不是数组,而是关联表(映射),其中键字符为“#”,用于分割键和值。尝试改用元组(括号)

'id1:int,id2:(id3:chararray,id4:chararray,id5:chararray)'

我无法测试它,也从未尝试过Pig,但根据文档,它应该可以正常工作

(基于以下示例)


尝试检查整个JSON。也许,这只是最后一个尾随逗号。我刚刚检查了json的格式是否正确。
'id1:int,id2:(id3:chararray,id4:chararray,id5:chararray)'
'id1:int,id2:{(id3:chararray,id4:chararray,id5:chararray)}'
a = load 'a.json' using JsonLoader('a0:int,a1:{(a10:int,a11:chararray)},a2:(a20:double,a21:bytearray),a3:[chararray]');