我是hadoop上json的新手,我有大量的.json类型的日志文件。我需要在mapreduce中解析这些日志。我需要一个mapreduce作业的例子,它接受.json文件的输入,解析它并将其输出到文本文件或.json文件。
[
{
"name":"John",
"city":"Berlin",
"cars":[
"audi",
"bmw"
],
"job":"Teacher"
},
{
"name":"Mark",
"city":"Oslo",
"cars":[
"VW",
"Toyata"
],
"job":"Doctor"
}
]
例如,上面的json应该在mapreduce中进行解析,以得到key:name and 在所有附加名称的值中
2条答案
按热度按时间cu6pst1q1#
要将任何数据读入您的程序,您需要一个inputformat的实现,无论是jsonxml还是avro读取器,该实现都应该超越下面的方法
公开摘要
如果您正在寻找一个现有的实现,只需google或查看这里的定制inputformat,以便在hadoop中读取json
有关实现的详细信息,请参阅此源代码http://grepcode.com/file/repo1.maven.org/maven2/org.kitesdk/kite-data-core/0.18.0/org/kitesdk/data/spi/filesystem/jsoninputformat.java
输出格式与此无关。您可以根据需要选择减速机的输入和输出类型。仅当您要生成json文件时,才需要jsonoutputformat(fileoutputformat的实现)
px9o7tmv2#
googlegson的jsonreader可能正是您所需要的。不完全确定您要用json数据做什么,但是您应该能够用jsonreader从文件中导入json并相应地处理它
https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/jsonreader.html