MapReduce Map Join怎么使用
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"MapReduce Map Join怎么使用",在日常操作中,相信很多人在MapReduce Map Join怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2026年10月31日MapReduce Map Join怎么使用
这篇文章主要介绍"MapReduce Map Join怎么使用",在日常操作中,相信很多人在MapReduce Map Join怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"MapReduce Map Join怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1. 样例数据
011990-99999 SIHCCAJAVRI012650-99999 TYNSET-HANSMOEN
012650-99999 194903241200 111012650-99999 194903241800 78011990-99999 195005150700 0011990-99999 195005151200 22011990-99999 195005151800 -11
2. 需求
3. 思路、代码
将足够小的关联文件(即气象台信息)添加到分布式缓存,然后在每个 Mapper 端读取被缓存到本地的全量气象台信息,再与天气信息相关联。
import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Map;public class MapJoin { static class RecordMapper extends Mapper { private Map stationMap = new HashMap(); @Override protected void setup(Context context) throws IOException, InterruptedException { //预处理,把要关联的文件加载到缓存中 Path[] paths = context.getLocalCacheFiles(); //新的检索缓存文件的API是 context.getCacheFiles() ,而 context.getLocalCacheFiles() 被弃用 //然而 context.getCacheFiles() 返回的是 HDFS 路径; context.getLocalCacheFiles() 返回的才是本地路径 //这里只缓存了一个文件,所以取第一个即可 BufferedReader reader = new BufferedReader(new FileReader(paths[0].toString())); String line = null; try { while ((line = reader.readLine()) != null) { String[] vals = line.split("\\t"); if (vals.length == 2) { stationMap.put(vals[0], vals[1]); } } } catch (Exception e) { e.printStackTrace(); } finally { reader.close(); } super.setup(context); } @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String[] vals = value.toString().split("\\t"); if (vals.length == 3) { String stationName = stationMap.get(vals[0]); //Join stationName = stationName == null ? "" : stationName; context.write(new Text(vals[0]), new Text(stationName + "\t" + vals[1] + "\t" + vals[2])); } } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); if (otherArgs.length != 3) { System.err.println("Parameter number is wrong, please enter three parameters: 4. 运行结果
到此,关于"MapReduce Map Join怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
缓存
文件
学习
信息
关联
更多
气象
气象台
路径
帮助
实用
接下来
代码
分布式
多个
天气
思路
数据
文章
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
互联网络科技
哈尔滨大商圈互联网科技有限公司
互联网巨头反垄断金融科技
互联网下的科技发展
青岛互联网科技公司
上海致骋互联网科技
友谊互联网络科技
互联网科技英文翻译
互联网科技股午盘股票涨跌
银川新华互联网科技职业技术培训学校图片
来此购互联网科技有限公司
华夏互联网科技业
互联网科技与大数据专业
银川新华互联网科技学校联系电话
互联网科技公司营业执照怎么办理
郑州欣桑互联网科技有限公司
互联网时代科技型公司的机会
安徽零酒互联网科技有限公司
重庆科技产业互联网有哪些
百单网互联网科技有限公司
互联网络科技有限公司
以房互联网科技
齐家互联网科技有限公司
美国互联网前沿科技
新华互联网科技校企合作
新兴科技互联网创新大赛颁奖典礼
西安小鹰速贷互联网科技有限公司
优雇互联网科技有限公司
互联网高科技绘画