`

hadoop mapreduce 中java用gson类库解析json

阅读更多
废话不说,代码如下:

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类库。
分享到:
评论

相关推荐

    Hadoop MapReduce实现tfidf源码

    在Hadoop MapReduce中,我们通常将这个过程分为两个阶段:Map阶段和Reduce阶段。 Map阶段的主要任务是对输入的文档进行切分,生成词频键值对。对于每个文档,我们需要读取内容,将文档拆分成单词,并为每个单词计算...

    Java操作Hadoop Mapreduce基本实践源码

    本文将深入探讨如何使用Java编程语言来操作Hadoop MapReduce进行基本实践,通过源码分析来理解其核心工作原理和编程模型。 MapReduce的核心思想是将大规模数据集分解成小块,然后在分布式集群上并行处理这些小块,...

    Hadoop mapreduce实现wordcount

    在这个案例中,我们将深入探讨如何在 Hadoop 环境中使用 MapReduce 实现 WordCount。 【描述】在 Hadoop 环境中,WordCount 的实现主要涉及两个关键阶段:Map 阶段和 Reduce 阶段。Map 阶段将原始输入数据(通常是...

    大数据 hadoop mapreduce 词频统计

    在MapReduce中,数据处理分为两个主要阶段:Map阶段和Reduce阶段。Map阶段将原始数据分解成小块,然后对每个小块进行并行处理;Reduce阶段则负责聚合Map阶段的结果,输出最终结果。 在这个"大数据Hadoop MapReduce...

    Hadoop MapReduce实战手册(完整版)

    《Hadoop MapReduce实战手册》是一本专注于大数据处理技术的专著,主要针对Apache Hadoop中的MapReduce框架进行了深入的探讨。MapReduce是Hadoop生态系统中的核心组件之一,用于处理和生成大规模数据集。该书旨在...

    Hadoop MapReduce Cookbook 源码

    《Hadoop MapReduce Cookbook 源码》是一本专注于实战的书籍,旨在帮助读者通过具体的例子深入理解并掌握Hadoop MapReduce技术。MapReduce是大数据处理领域中的核心组件,尤其在处理大规模分布式数据集时,它的重要...

    python hadoop mapreduce 相似用户|mapreduce.rar

    Python在Hadoop MapReduce中的使用,通常通过Hadoop Streaming实现。这是一个允许使用任何可生成输入/输出流的可执行程序(如Python脚本)作为Map和Reduce任务的框架。在Python脚本中,我们需要定义map()和reduce()...

    Hadoop MapReduce v2 Cookbook, 2nd Edition-Packt Publishing(2015) 高清完整版PDF下载

    **Hadoop MapReduce V2** 是Hadoop生态系统中的一个关键组件,用于处理大规模数据集。相较于V1版本,V2版本在架构上进行了重大改进,引入了**YARN(Yet Another Resource Negotiator)**来分离资源管理和任务调度/...

    基于Hadoop MapReduce的Java实现简单数据分析项目源码

    该开源项目利用Hadoop MapReduce技术,以Java为主要开发语言,融合了HTML和JavaScript,整体包含176个文件,其中Java源文件63个,XML配置文件16个,JSON文件17个,CRC文件24个,HTML文件5个,文本文件4个,属性文件3...

    基于Apriori算法的频繁项集Hadoop mapreduce

    在大数据处理领域,Apriori算法与Hadoop MapReduce的结合是实现大规模数据挖掘的关键技术之一。Apriori算法是一种经典的关联规则学习算法,用于发现数据集中频繁出现的项集,进而挖掘出有趣的关联规则。而Hadoop ...

    Hadoop MapReduce.md

    1、程序设计模式不容易使用,而且 Hadoop 的 Map Reduce API 太过低级,很难提高开发者的效率。 2、有运行效率问题,MapReduce 需要将中间产生的数据保存到硬盘中,因此会有读写数据延迟问题。 3、不支持实时处理...

    Hadoop MapReduce v2 Cookbook (第二版)

    Hadoop MapReduce v2 Cookbook (第二版), Packt Publishing

    10.Hadoop MapReduce教程1

    Hadoop MapReduce 是 Hadoop 生态系统中的一部分,它是一种可靠的、可扩展的并行处理框架,用于处理大规模数据集。MapReduce 是一种编程模型,它将计算任务分解为两个阶段:Map 阶段和 Reduce 阶段。 Map 阶段的...

    基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip

    基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python...

    Hadoop之MapReduce编程实例完整源码

    一个自己写的Hadoop MapReduce实例源码,网上看到不少网友在学习MapReduce编程,但是除了wordcount范例外实例比较少,故上传自己的一个。包含完整实例源码,编译配置文件,测试数据,可执行jar文件,执行脚本及操作...

    基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip

    基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析(python开发源码+项目说明).zip基于Hadoop Mapreduce 实现酒店评价文本情感分析...

    Hadoop MapReduce v2 Cookbook.pdf

    YARN的引入则将资源管理和作业调度从MapReduce中分离出来,提高了系统的灵活性和效率。 Hadoop MapReduce v2的主要改进包括: 1. **YARN架构**:YARN将JobTracker的功能拆分为ResourceManager(RM)和...

    hadoop mapreduce编程实战

    Hadoop MapReduce 编程实战 ...通过了解 MapReduce 编程基础、MapReduce 项目实践、MapReduce 编程模型、Deduplication、MAC 地址统计和计数器的使用,我们可以更好地掌握 Hadoop MapReduce 的编程技术。

    Hadoop mapreduce 实现KMeans

    在大数据处理领域,Hadoop MapReduce 是一种广泛使用的分布式计算框架,它允许高效地处理海量数据。KMeans 是一种常见的无监督机器学习算法,用于聚类分析,将数据集中的对象按照相似性分组成不同的簇。现在我们来...

Global site tag (gtag.js) - Google Analytics