Hadoop控制输出文件命名

原文地址:http://blog.csdn.net/zuochanxiaoheshang/article/details/8769198

点击阅读原文


---------------------------------------------------

Hadoop 控制输出文件命名
在一般情况下,Hadoop 每一个 Reducer 产生一个输出文件,文件以
part-r-00000、part-r-00001 的方式进行命名。如果需要人为的控制输出文件的命
名或者每一个 Reducer 需要写出多个输出文件时,可以采用 MultipleOutputs 类来
完成。MultipleOutputs 采用输出记录的键值对(output Key 和 output Value)或者
任意字符串来生成输出文件的名字,文件一般以 name-r-nnnnn 的格式进行命名,
其中 name 是程序设置的任意名字;nnnnn 表示分区号。
MultipleOutputs 的使用方式 的使用方式: :: :
想要使用 MultipeOutputs,需要完成以下四个步骤:
1. 在 Reducer 中声明 MultipleOutputs 的变量
private MultipleOutputs<NullWritable, Text> multipleOutputs;
2. 在 Reducer 的 setup 函数中进行 MultipleOutputs 的初始化
protected void setup(Context context)throws IOException, InterruptedException {
multipleOutputs = new MultipleOutputs<NullWritable, Text>(context);
}

3. 在 reduce 函数中进行输出控制
protected void reduce(Text key, Iterable<Text> values, Context context)throws IOException,
InterruptedException {
for (Text value : values) {
multipleOutputs.write(NullWritable.get(), value, key.toString());
}
}

4. 在 cleanup 函数中关闭输出 MultipleOutputs
protected void cleanup(Context context)throws IOException, InterruptedException {
multipleOutputs.close();
}

注意:multipleOutputs.write(key, value, baseOutputPath)方法的第三个函数表明了该输出所在的目录(相对于用户指定的输出目录)。如果baseOutputPath不包含文件分隔符“/”,那么输出的文件格式为baseOutputPath-r-nnnnnname-r-nnnnn);如果包含文件分隔符“/”,例如baseOutputPath=029070-99999/1901/part”,那么输出文件则为




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端路由的两种实现原理

2019独角兽企业重金招聘Python工程师标准>>> History API 这里不细说每一个 API 的用法&#xff0c;大家可以看 MDN 的文档&#xff1a;https://developer.mozilla.org... 重点说其中的两个新增的API history.pushState 和 history.replaceState 这两个 API 都接收三…

3.JDK和JRE和JVM的区别

JDK --Java Development Kit --java 开发工具包 JRE --Java Runtime Environment --java运行时环境 JVM --Java Virtual Machine --java虚拟机 ------------- 更多的Java&#xff0c;Angular&#xff0c;Android&#xff0c;大数据&#xff0c;J2EE&#xff0c;Python…

缓存cache

由于Django是动态网站&#xff0c;所有每次请求均会去数据进行相应的操作&#xff0c;当程序访问量大时&#xff0c;耗时必然会更加明显&#xff0c;最简单解决方式是使用&#xff1a;缓存&#xff0c;缓存将一个某个views的返回值保存至内存或者memcache中&#xff0c;5分钟内…

4.JVM简述

JVM是一种规范。 就是一个虚拟的用于执行bytecodes字节码的计算机 可以用软件来实现&#xff0c;如IBM,SUN,BEA等按照这个规范实现&#xff0c;可以实现比SUN公司更好的JVM&#xff0c;我们自己也可以实现一个。 可以使用硬件来实现&#xff0c;如sun与intel公司研发java的芯…

5.JDK环境配置

下载 进入Oracle官网下载&#xff0c;点击进入 安装 一路下一步。记住安装到哪里了。 配置环境变量 JAVA_HOME 刚才的java安装目录 PATH %JAVA_HOME%\bin PATH里配置多个用英文的分号; 分隔。 *classpath&#xff0c;jdk5.0以上可以不用配置了 测试 windows下&#xf…

6.第一个程序Hello World

新建文件夹 在C盘新建个文件夹 mycode。注意不要用中文。 新建java文件 1、显示隐藏文件名。 2、右键新建文本文件 3、重命名为 Welcome.java。&#xff08;首字母必须大写。如果不显示隐藏文件名&#xff0c;会是Welcome.java.txt不是java文件&#xff09; 4、编写代码 p…

pythonstdin_python 笔试输入:sys.stdin.readline和input

①&#xff1a;输入一行数据并输 出两种方法 # 输入一行数据并输出 import sys # 方法一&#xff1a; str1 input() print(input 输入:,str1,len,len(str1)) print(循环遍历输入得到输入的每个字符的ascii码如下&#xff1a;) for i in str1: print(ord(i)) # 方法二&#xff…

8.对Hello World程序的深入

Welcome.java public class Welcome{public static void main(String[] args){System.out.println("Hello World,I am Java!");}}1、Java对大小写敏感。如果出现了大小写拼写错误&#xff0c;程序无法运行。 关键字class表明Java程序中的全部内容都包含在类中&…

python整数类型没有取值范围限制_详解Python中6种数据类型

Python中数据类型主要有六种&#xff1a;数字类型&#xff0c;字符串类型&#xff0c;元组类型&#xff0c;列表类型&#xff0c;文件类型和字典类型&#xff0c;我们今天先介绍前四种类型。 假如在Python程序中&#xff0c;出现了“010”&#xff0c;那么这个“010”到底是什么…

python爬虫的用途_python爬虫用途

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;专业点来说就是应用多台机器同时实现爬虫任务&#xff0c;这多台机器上的爬虫&#xff0c;就是称作分布式爬虫…

二元函数泰勒公式例题_高等数学期末总复习 DAY 5. 罗尔定理证明题 拉格朗日、柯西中值定理 泰勒公式及麦克劳林公式...

DAY 5.DAY 5.1.罗尔定理2.拉格朗日定理3.柯西中值定理4.泰勒公式及麦克劳林公式1.罗尔定理罗尔定理描述如下&#xff1a;如果 R 上的函数 f(x) 满足以下条件&#xff1a;&#xff08;1&#xff09;在闭区间 [a,b] 上连续&#xff0c;&#xff08;2&#xff09;在开区间 (a,b) 内…

android应用程序是什么,简述Android应用程序结构是什么?公共题库

试题分类&#xff1a;Android简述Android应用程序结构是什么?解析:Android应用程序结构是&#xff1a;LinuxKernel(Linux内核)、Libraries(系统运行库或者是c/c核心库)、ApplicationFramework(开发框架包)、Applications(核心应用程序)以下这些控件可以放置按钮&#xff1f;答…

《程序设计与数据结构》第八周学习总结

学号 20172326 《程序设计与数据结构》第八周学习总结 教材学习内容总结 后绑定在程序执行时执行多态性可由继承与接口实现排序有选择法排序与插入法排序搜索分为线性搜索与二分搜索算法&#xff0c;同一类型的不同方法可能解决同一问题&#xff0c;但是&#xff0c;效率与难以…

python获取文件名不含后缀名_大部分Python资料都没有说到的重点-用实战教你解决问题的思路...

前言最近有些刚入门Python的小伙伴问我&#xff0c;他已经学会了大部分语法&#xff0c;基本的列表&#xff0c;元组也会使用&#xff0c;但是在实际中需要做一点小需求的时候&#xff0c;仍然不知所措。解决问题重要的并非是如何写代码&#xff0c;而是如何分析和拆解问题&…

12.JAVA基本数据类型

Java是一种强类型语言&#xff0c;每个变量都必须声明类型。 String 不是java的基本数据类型&#xff01;&#xff01;&#xff01; 除了8种基本数据类型之外&#xff0c;其他的都是引用类型。 引用类型的初始值是null byte&#xff0c;short&#xff0c;int类型的默认值为0 …

opencv android jni,OpenCV - AndroidStudio的JNI工程及引用OpenCV

一把利刃&#xff0c;用不好&#xff0c;会伤到你遍体鳞伤。用得好&#xff0c;便为你披荆斩棘&#xff0c;所向披靡。好与不好之间&#xff0c;便是历练。几经波折&#xff0c;终于跌跌撞撞,集成了OpenCV,并实现了灰度图片&#xff0c;自此一扇新的大门已经打开。至此我手中已…

excel图表交互联动_深入讲解EasyShu图表与引用数据动态联动功能

EasyShu一开始的架构是将制作好的图表最终返回给用户&#xff0c;不依赖用户工作表的单元格区域引用&#xff0c;可满足图表绘制后的脱离数据源分享传播&#xff0c;无奈用户最强烈的反馈是要求图表与数据保持联动&#xff0c;这一需求实在对EasyShu是一个巨大的挑战。为了将Ea…

android代码生成excel,AndroidExcel

Android_Excel在android中生成excel##效果图##初始化数据首先我们要先造下测试数据&#xff0c;这里我把数据写死在一个常量类Const中&#xff0c;如下&#xff1a;public class Const {public interface OrderInfo{public static final String[][] orderOne new String[][] {…

14.JAVA整型变量

表示形式 Java语言整型常数的3种表示形式&#xff1a; 1、十进制整数&#xff1a;99&#xff0c;-100,0 2、八进制整数&#xff1a;要以0开头&#xff0c;如015 3、十六进制整数&#xff1a;以0x开头&#xff0c;如0x15 点击查看十进制八进制十六进制概念 public static v…

exists sql用法_干货!SQL性能优化,书写高质量SQL语句

写SQL语句的时候我们往往关注的是SQL的执行结果&#xff0c;但是是否真的关注了SQL的执行效率&#xff0c;是否注意了SQL的写法规范&#xff1f;以下的干货分享是在实际开发过程中总结的&#xff0c;希望对大家有所帮助&#xff01;1. limit分页优化当偏移量特别大时&#xff0…