我在s3中有很多gzip的日志文件,它有3种类型的日志行:b,c,i.我和c都是单级json:
{"this":"that","test":"4"}
Run Code Online (Sandbox Code Playgroud)
类型b是深度嵌套的json.我遇到了一个关于编译罐子来完成这项工作的要点.由于我的java技能不是很好,我真的不知道该怎么做.
{"this":{"foo":"bar","baz":{"test":"me"},"total":"5"}}
Run Code Online (Sandbox Code Playgroud)
由于类型i和c并不总是以相同的顺序,这使得指定生成正则表达式中的所有内容变得困难.使用Pig可以处理JSON(在gzip文件中)吗?我正在使用任何版本的Pig来自Amazon Elastic Map Reduce实例.
这归结为两个问题:1)我可以用猪解析JSON(如果是的话,如何)?2)如果我可以解析JSON(来自gzip的日志文件),我可以解析嵌套的JSON对象吗?
经过大量的解决方法和事情的处理后,我能够回答这个问题.我在博客上写了一篇关于如何做到这一点的文章.它可以在这里找到:http://eric.lubow.org/2011/hadoop/pig-queries-parsing-json-on-amazons-elastic-map-reduce-using-s3-data/
Pig附带一个JSON加载器.加载你使用:
A =
LOAD'data.json ' 使用PigJsonLoader();
要存储您可以使用:
STORE INTO ‘output.json’
USING PigJsonLoader();
Run Code Online (Sandbox Code Playgroud)
但是,我不确定它是否支持GZIPed数据....
| 归档时间: |
|
| 查看次数: |
29867 次 |
| 最近记录: |