我在s3中有很多gzip日志文件,其中有3种类型的日志行:b,c,i。我和c都是单层json:
{"this":"that","test":"4"}
类型b是深度嵌套的json。我碰到这个要点,谈论要编译一个罐子来完成这项工作。由于我的Java技能还不算出色,因此我真的不知道该怎么做。
{"this":{"foo":"bar","baz":{"test":"me"},"total":"5"}}
由于类型i和c并不总是相同的顺序,因此很难在生成正则表达式中指定所有内容。Pig是否可以处理JSON(在gzip文件中)?我正在使用在Amazon Elastic Map Reduce实例上构建的任何版本的Pig。
这归结为两个问题:1)我可以用Pig解析JSON(如果可以,如何解析)?2)如果我可以解析JSON(从gzip的日志文件中),可以解析嵌套的JSON对象吗?
经过大量的变通办法并逐步解决了所有问题,我能够做出答复以完成此任务。我在我的博客上写了有关如何执行此操作的文章。可在此处获得:http : //eric.lubow.org/2011/hadoop/pig-queries-parsing-json-on-amazons-elastic-map- reduce-using-s3-data/