废话不说,代码如下:
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.Iterator;
/*import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;*/
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class ParseLogMapper extends Mapper<LongWritable, Text, Text, Text> {
@Override
public void map(LongWritable key, Text value,
Context context)
throws IOException, InterruptedException {
try{
String json;
String line = value.toString();
String[] data = line.split("\\t");
LogColumns logColumns = new LogColumns();
logColumns.reqTime = data[0];
logColumns.reqIp = data[1];
json = data[2];
Type type = new TypeToken<LogJson>() {
}.getType();
Gson gson = new Gson();
LogJson logJson = gson.fromJson(json, type);
logColumns.devMac = logJson.getMac();
logColumns.devType = logJson.getDevice();
logColumns.devVersion = logJson.getVersion();
logColumns.report = "download";
//System.out.println(b.getRows());
//System.out.println(logJson.getAppList().size());
Iterator<AppInfo> i=logJson.getAppList().iterator();
while(i.hasNext()){
AppInfo appInfo = i.next();
logColumns.appName = appInfo.getkTitle();
logColumns.appid = appInfo.getkAppID();
logColumns.actionTime = appInfo.getkDownloadDate();
context.write(new Text(logColumns.toString()), new Text());
}
}catch(Exception e){
}
}
}
附件是gson类库。
分享到:
相关推荐
Java操作Hadoop Mapreduce基本实践源码.
Hadoop 用mapreduce实现Wordcount实例,绝对能用
upon the widely used and highly successful Hadoop MapReduce v1. The recipes that will help you analyze large and complex datasets with next generation Hadoop MapReduce will provide you with the skills...
本书对Hadoop Mapreduce进行详细讲解,切合实际应用,能够更深入地学习MapReduce,确实是一本不错的书。
用MapReduce实现TF-IDF,Hadoop版本是2.7.7,参考某教程亲自手写的,可以运行,有问题可以留言
Hadoop MapReduce Cookbook 高清完整版PDF下载 Hadoop MapReduce Cookbook
在hadoop平台上,用mapreduce编程实现大数据的词频统计
标签:core、apache、mapreduce、client、hadoop、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...
1、程序设计模式不容易使用,而且 Hadoop 的 Map Reduce API 太过低级,很难提高开发者的效率。 2、有运行效率问题,MapReduce 需要将中间产生的数据保存到硬盘中,因此会有读写数据延迟问题。 3、不支持实时处理...
Hadoop MapReduce v2 Cookbook (第二版), Packt Publishing
基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python...
基于Apriori算法的频繁项集Hadoop mapreduce
基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析...
这本书都是实例,很接地气,多加练习和阅读,可稳步上升
[Packt Publishing] Hadoop MapReduce 经典实例 (英文版) [Packt Publishing] Hadoop MapReduce Cookbook (E-Book) ☆ 出版信息:☆ [作者信息] Srinath Perera, Thilina Gunarathne [出版机构] Packt ...
标签:apache、mapreduce、jobclient、client、hadoop、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结
Hadoop MapReduce v2 Cookbook, 2nd Edition-Packt Publishing(2015) 高清完整版PDF下载
大数据学习 hadoop MapReduce实例解析
hadoop mapreduce helloworld 能调试 详细内容请看:http://blog.csdn.net/wild46cat/article/details/53641765
Hadoop mapreduce 实现KMeans,可用