mapreduce-查找最高气温的Mapper类

package com;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

public class MaxTemperatureMapper extends Mapper<LongWritable, Text, Text, IntWritable> {

private static final int MISSING = 9999;

@Override

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{

String line = value.toString();

String year = line.substring(15, 19);

int airTemperature;

if(line.charAt(87) == ‘+‘){

airTemperature = Integer.parseInt(line.substring(88, 92));

}else{

airTemperature = Integer.parseInt(line.substring(87, 92));

}

String quality = line.substring(92, 93);

if(airTemperature != MISSING && quality.matches("[01459]")){

context.write(new Text(year), new IntWritable(airTemperature));

}

}

}

时间: 2024-10-10 00:52:52

mapreduce-查找最高气温的Mapper类的相关文章

MapReduce源码分析:Mapper和Reducer类

一:Mapper类 在Hadoop的mapper类中,有4个主要的函数,分别是:setup,clearup,map,run.代码如下: protected void setup(Context context) throws IOException, InterruptedException { // NOTHING } protected void map(KEYIN key, VALUEIN value, Context context) throws IOException, Interr

hadoop之mapper类妙用

1. Mapper类 首先 Mapper类有四个方法: (1) protected void setup(Context context) (2) Protected void map(KEYIN key,VALUEIN value,Context context) (3) protected void cleanup(Context context) (4) public void run(Context context) setup()方法一般用来加载一些初始化的工作,像全局文件\建立数据库

Job流程:Mapper类分析

此文紧接Job流程:决定map个数的因素,Job提交完成之后,由Mapper类进行处理. 1). Mapper类中 setup() 和 cleanup() 两个方法负责 map 任务的 初始化 和 清理工作(默认是空实现) 2). Mapper类中 run() 方法负责调用用户自定义的 map()方法.最主要的代码在于while()循环.其中,Context类是一个内部类,继承自MapContext接口,间接继承自TaskInputOutputContext类.此类中有一个nextKeyValu

MapReduce :基于 FileInputFormat 的 mapper 数量控制

本篇分两部分,第一部分分析使用 java 提交 mapreduce 任务时对 mapper 数量的控制,第二部分分析使用 streaming 形式提交 mapreduce 任务时对 mapper 数量的控制. 环境:hadoop-3.0.2 前言: 熟悉 hadoop mapreduce 的人可能已经知道,即使在程序里对 conf 显式地设置了 mapred.map.tasks 或 mapreduce.job.maps,程序也并没有运行期望数量的 mapper. 这是因为,mapper 的数量由

Mapper类/Reducer类中的setup方法和cleanup方法以及run方法的介绍

在hadoop的源码中,基类Mapper类和Reducer类中都是只包含四个方法:setup方法,cleanup方法,run方法,map方法.如下所示: 其方法的调用方式是在run方法中,如下所示: 可以看出,在run方法中调用了上面的三个方法:setup方法,map方法,cleanup方法.其中setup方法和cleanup方法默认是不做任何操作,且它们只被执行一次.但是setup方法一般会在map函数之前执行一些准备工作,如作业的一些配置信息等:cleanup方法则是在map方法运行完之后最

WPF中查找控件的扩展类

在wpf中查找控件要用到VisualTreeHelper类,但这个类并没有按照名字查找控件的方法,于是搜索网络,整理出下面这个类,感觉用起来很是方便. 贴出来,供大家参考. /// <summary> /// WPF/Silverlight 查找控件扩展方法 /// </summary> public static class VisualHelperTreeExtension { /// <summary> /// 根据控件名称,查找父控件 /// elementNa

奇葩问题:spring+mybaits项目突然出现其中一些Mapper类找不到

一.问题现象 1,No bean named 'bomManageMapper' found in org.s[email protected]......... 2,我把代码中引用的bomManageMapper全部注释掉,又会出现另外一个Mapper对象找不到 3,但是奇怪的是,有两个项目启动的时用到的Mapper对象可以找到,发现这两个Mapper对象是在项目的core包下面,而其他找不到的Mapper对象都在interfaces包下面: 二.寻找答案 1,怀疑是昨天修改了什么东西,导致的

sts使用mybatis插件直接生成数据库表的mapper类及配置文件

首先点击help------>Eclipse Marketplace----->在find中搜索mybatis下面图片的第一个 点击installed 还需要一个配置文件generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Ge

mapreduce-查找最高气温的Reducer类

package com; import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; public class MaxTemperatureReducer extends Reducer<Text, IntWritable, Text, IntWritable>{