用PIG拉丁语处理非均匀JSON

用PIG拉丁语处理非均匀JSON,json,apache-pig,Json,Apache Pig,我有一个示例JSON文件 {“type”:“Chrome”,“url”:“www.example1.com”,“host”:“HOST1”,“referer”:“www.reference1.com”} {“type”:“FireFox”,“url”:“www.example1.com”,“host”:“HOST1”,“referer”:“www.reference2.com”} {“type”:“Chrome”,“url”:“www.example2.com”,“host”:“HOST2”}

我有一个示例JSON文件

{“type”:“Chrome”,“url”:“www.example1.com”,“host”:“HOST1”,“referer”:“www.reference1.com”} {“type”:“FireFox”,“url”:“www.example1.com”,“host”:“HOST1”,“referer”:“www.reference2.com”} {“type”:“Chrome”,“url”:“www.example2.com”,“host”:“HOST2”}

在上面的JSON中,referer字段并非在所有记录中都可用。它可能可用,也可能不可用。如何用猪拉丁语处理它们

如果字段在JSON中是统一的并且可用于所有记录,则下面的脚本可以处理这些字段。(删除了没有referer字段的记录)


请指教

当您尝试处理非统一JSON时会发生什么情况?@WinnieNicklaus这是我尝试2014-02-20 20:33:11474[main]INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher时遇到的错误-失败!2014-02-20 20:33:11510[main]错误org.apache.pig.tools.grunt.GruntParser-错误2997:无法从备份错误中重新创建异常:org.codehaus.jackson.JsonParseException:当前令牌(null)不是数字,无法在[源代码:java.io]使用数值访问器。ByteArrayInputStream@7a4fe91e;行:1,列:175]
register '/usr/local/pig/contrib/piggybank/java/piggybank.jar';
record = LOAD 'piginput/file.json' 
USING JsonLoader('type:chararray,url:chararray,host:chararray,referer:chararray');
GroupByhttp = GROUP record BY (referer,type);
CountByhttp = FOREACH GroupByhttp 
GENERATE group,COUNT(record);
STORE CountByhttp
INTO 'pig_output';