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

  2. 在 Reducer 的 setup 函数中进行 MultipleOutputs 的初始化

  protected void setup(Context context)throws IOException, InterruptedException {

  multipleOutputs = new MultipleOutputs

  }

  3. 在 reduce 函数中进行输出控制

  protected void reduce(Text key, Iterable 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-nnnnn(name-r-nnnnn);如果包含文件分隔符“/”,例如baseOutputPath=“029070-99999/1901/part”,那么输出文件则为

时间: 2025-01-31 05:54:56

Hadoop控制输出文件命名的相关文章

Response.ContentType 控制输出文件类型(讨论下载文件问题)

response|控制|问题|下载 服务器送给客户端的数据包类型可以是text/html文本,也可以是gif/jpeg图形文件,所以每次传输前,我们都必须告知客户端将要传输的文件类型,一般默认情况下为"Text/Html"类型.<% Response.ContentType = "text/HTML" %><% Response.ContentType = "image/GIF" %><% Response.Cont

Linux下控制(统计)文件的生成的C代码实现_C 语言

本文分享了Linux下控制(统计)文件的生成的C代码实现案例,供大家参考,具体内容如下 一.需求描述 不定时地在Linux机器下的某目录中放入文件,文件内容中包含了用户号码.起止时间等字段,现要求编写一程序来统计目前该目录中所有文件中的记录总条数及所有记录中的最早起始时间和最晚结束时间. 例如,该目录中有两个文件Test_1.txt和Test_2.txt,其中Test_1.txt文件内容为: 15696192591|15696192592|20151103 120909|20151103 201

CS0016: 未能写入输出文件...\App_Web_default.aspx.cdcab7d2.zii776dc.dll”--&quot;拒绝访问。 &quot;

Asp.net部署后访问网站出现问题(Windows 7 旗舰版): CS0016: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\4b49f661\23a749fc\App_Web_default.aspx.cdcab7d2.zii776dc.dll"--"拒绝访问. " 解决方法:  找到C:\Windows\Temp 目录,在其属性->

网站文件命名规范

规范  · 文件命名的原则:以最少的字母达到最容易理解的意义.· 索引文件统一使用index.html文件名(小写) index.html文件统一作为"桥页",不制作具体内容,仅仅作为跳转页和meta标签页.主内容页为main.html · 按菜单名的英语翻译取单一单词为名称.例如: 关于我们 \aboutus 信息反馈 \feedback 产 品 \product 所有单英文单词文件名都必须为小写,所有组合英文单词文件名第二个起第一个字母大写: 所有文件名字母间连线都为下划线 · 图

控制输出字符串的长度,可以区别中英文

控制|区别|字符串 研究了2小时怎么控制输出文章标题中的中英文,给大家铁出来函数在下面,是方法是:strvalue("复请Email通知如果不填写则取注册Email",26)这里26是指26个英文字母,也就是13个汉字 function strlen(str)dim p_lenp_len=0strlen=0if trim(str)<>"" thenp_len=len(trim(str))for xx=1 to p_lenif asc(mid(str,xx

Eclipse CDT使用GDB调试C++的问题:无源文件命名(No source file named)

Eclipse CDT调试C++, 使用的Unix的调试器GDB; 由于在Unix下, 文件的目录格式使用的是"/", 但是在Windows下, 文件的目录格式使用的是"\", 在C/C++中是转义字符; 所以导致GDB由Unix移植到Windows下, 使用的文件目录会发生转义错误, 从而找不到源文件, 即无源文件命名(No source file named); 使得GDB即使设置断点, 也无法挂起(Suspend)程序, 出现调试问题, 无法调试; 解决方法:

tkprof程序产生的格式化输出文件

tkprof的格式化输出文件主要包含: (1)header (2)body (3)summary 1.header: 主要包括一些描述信息,如TKPROF的版本.运行时间,各个统计项的描述.如: TKPROF: Release 8.1.7.0.0 - Production on 星期四 6月 30 13:10:59 2005 (c) Copyright 2000 Oracle Corporation. All rights reserved. Trace file: D:\oracle\admi

狸窝全能视频转换器看源文件跟输出文件对比

  1:点击右上角设置,"编辑"--"文件信息" 2:就可以看到你之前选着转出的格式的输出的详细资料. 这样就可以看到源文件跟输出文件的详细对比.

如何进行文件命名

  文件名是文件最显著的特征,通过它我们可以找到我们想要的文件,并区分不同类型的文件.而每个文件的命名规则都是相同的,那就是*.*的格式,前半部分是文件的正式文件名,后半部分是文件的属性标记,也就是我们常说的扩展名,它决定文件的类型,扩展名通常是由3~4个英文字母组成.如Word文件的扩展名是doc,MP3的扩展名是mp3,一些图像文件的扩展名是jpg等.如果你的電腦不顯示, 請看怎么显示文件扩展名 文件命名和命名规则 不同的文件名可以区分不同的文件, 下面是一些命名规则. 1.文件名长度规定