当前位置: 首页 > news >正文

MapReduce学习问题记录

 1、如何跳过对某行数据的处理

        第一行数据是字段名不需要处理,我们知道第一行偏移量是0(行记录的时候是从数组首地址开始,到了行标识符进行一次计数,这个计数就是行偏移量,从0开始),我们根据偏移量值进行判断,然后用中断方法把第一行数据跳过。

// 根据偏移量把第一行筛选出来:if (0== key.get()){return; // 中断方法:即不对符合条件的数据进行处理,也就是跳过这些数据不做处理}

 2、接下来是对需求数据的Map处理

String[] line = value.toString().replaceAll("\"","").split(",");//对可能数组越界的字符串数据过滤:用判断把长度不符合的数组剔除if (11== line.length){//对符合要求的数据开始写出:格式---K:省市年月日(拼接),V:温度StringBuilder outKey = new StringBuilder();outKey.append(line[1]).append(line[2]).append(DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.parse(line[9], DateTimeFormatter.ofPattern("d/M/yyyy HH:mm:ss"))));context.write(new Text(outKey.toString()),new IntWritable(Integer.parseInt(line[5])));}

 3、接下来是reduce处理逻辑

       根据业务需求写出数据

package com.yjxxt.Weather;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;/*** Reducer中四个泛型解释* KEYIN: MapTask写出数据的key:地区年月日* VALUEIN:MapTask写出数据的value  温度(N条,因为记录了每天不同时刻的温度)* KEYOUT: Reducetask写出数据的key 地区年月日* VALUEOUT: Reducetask写出数据的value 温度最值*/
public class WeatherReducer extends Reducer <Text, IntWritable, Text, Text>{@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {//这里的VALUEOUT是要最高温和最低温,所以reduce要把拉取过来的温度进行比较(从map-->reduce:数据是1:N模型)int max=-100,min=100;//用比较函数找到最值for (IntWritable value:values) {max = Math.max(max, value.get());min = Math.min(max, value.get());}//将最终结果写出去:VALUEOUT也写成文本形式context.write(key,new Text("最高温度["+max+"]最低温度["+min+"]"));}
}
http://www.lryc.cn/news/324340.html

相关文章:

  • Elasticsearch优化
  • 【Redis知识点总结】(六)——主从同步、哨兵模式、集群
  • Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
  • 【硬件设计】以立创EDA举例——持续更新
  • Chain of Note-CoN增强检索增强型语言模型的鲁棒性
  • Uniapp 的 uni.request传参后端
  • 数据可视化-ECharts Html项目实战(5)
  • C++学习之旅(二)运行四个小项目 (Ubuntu使用Vscode)
  • 数据分析与挖掘
  • Maxwell监听mysql的binlog日志变化写入kafka消费者
  • Kafka系列之:Kafka Connect REST API
  • DC-4靶机
  • ideaSSM 高校公寓交流员管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目
  • Android studio添加阿里云仓库
  • 每天一个数据分析题(二百二十)
  • Centos上安装Harbor并使用
  • 工作需求,Vue实现登录
  • 【生产力】Mac 窗口布局工具 Magnet
  • Linux的相关指令总结
  • HTTPS 加密原理
  • 【数据挖掘】实验4:数据探索
  • PTA后缀式求值(整型版)
  • FPGA与以太网相关接口知识
  • 使用git+ssh访问github,避免下载资源失败
  • cookie、session和token的区别
  • 如何解决Layui后台接口返回数据,但是table.render不渲染表格数据的问题
  • matlab 将矩阵写入文件
  • pandas的综合练习
  • 北京中科富海低温科技有限公司确认出席2024第三届中国氢能国际峰会
  • 非插件方式为wordpress添加一个额外的编辑器