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.pswp.cn/news/538821.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538821.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538821.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

office高級應用與python綜合案例教程_office高級應用與python綜合案例實驗指導--詳細介紹...

隨著社會經濟的發展&#xff0c;現代信息技術逐漸改變著人們的工作和生活方式。為使學生掌握辦公自動化軟件高級應用的技能&#xff0c;了解Python程序基礎知識&#xff0c;綜合運用辦公自動化軟件分析和解決實際問題&#xff0c;編者編寫了本書。 本書圍繞高等學校培養應用型人…

linux系統的安全機制有哪些內容,系統安全機制

AG351.SELINUXSElinux 是一個強制訪問控制系統,它為每個進程與文件都打上一個安全上下文標簽,而 selinux 通過這個標簽對系統訪問控制進行管理。2.針對車載產品對于啟動安全、平臺運行安全、通信安全三個主要領域有著特 殊 很 高 的 要 求 , 為 此 Quectel 結 合 了 Qualcomm 給…

移動端video播放時不彈出頁面層

移動端視頻在播放時會主動彈出頁面&#xff0c;有的瀏覽器不會。對那些會的瀏覽器進行處理&#xff1a; 直接加上下面三個屬性即可&#xff0c;兼容方面就不說了&#xff0c;微信上是很ok的。 <video x5-playsinline"" playsinline"" webkit-playsinlin…

1.計算機語言發展史

第一代 計算機語言 第二代 匯編語言 第三代 高級語言 面向過程&#xff1a;c&#xff0c;fortan&#xff0c;cobol&#xff0c;pascal&#xff0c;ada 面向對象&#xff1a;c&#xff0c;java&#xff0c;c# 計算機語言&#xff1a; 01010100010111000 010101010000 00…

定題信息服務是從什么角度_信息管理練習題2

1.文件的目錄結構是網頁在服務器上的存放狀況。(對)2、網絡信息指引庫存放的是有關主題的數據庫或服務器地址。(對)3、數據庫組織方式是將超文本與多媒體技術結合起來的組織方式。(錯)4、按信息的組織方式劃分&#xff0c;搜索引擎則可以分為目錄式搜索引擎(Yahoo)、索引式搜索…

python判斷是否為完全數_Python識別完美數

完美數 完美數(perfect number&#xff0c;又稱完全數)指&#xff0c;它所有的真因子(即除了自身以外的因子)和&#xff0c;恰好等于它自身。 第一個完美數&#xff1a;6&#xff0c; 第二個完美數&#xff1a;28&#xff0c; 第三個完美數&#xff1a;496&#xff0c; 第四個完…

linux嵌入式做智能家居,嵌入式系統在智能家居中的應用

汪家樂利用嵌入式系統來構建智能家居系統&#xff0c;使得用戶可以根據實際需求來進行操作&#xff0c;不僅可以提高生活水平&#xff0c;并且與其他系統相比&#xff0c;其在運行上具有更高的穩定性。本文對嵌入式系統在智能家居中應用要點進行了簡單分析。【關鍵詞】嵌入式系…

前端路由的兩種實現原理

2019獨角獸企業重金招聘Python工程師標準>>> History API 這里不細說每一個 API 的用法&#xff0c;大家可以看 MDN 的文檔&#xff1a;https://developer.mozilla.org... 重點說其中的兩個新增的API history.pushState 和 history.replaceState 這兩個 API 都接收三…

2.JAVA簡史

SUN公司 --美國SUN&#xff08;Stanford university network&#xff09;公司 --在中國大陸的正式中文名&#xff1a;太陽計算機系統&#xff08;中國&#xff09;有限公司 --在中國臺灣中文名&#xff1a;升陽電腦公司 JAVA為什么被發明&#xff1f; --是sun公司Green項目…

es統計有多少個分組_ES 24 - 如何通過Elasticsearch進行聚合檢索 (分組統計)

1 普通聚合分析1.1 直接聚合統計(1) 計算每個tag下的文檔數量, 請求語法:GET book_shop/it_book/_search{"size": 0, // 不顯示命中(hits)的所有文檔信息"aggs": {"group_by_tags": {// 聚合結果的名稱, 需要自定義(復制時請去掉此注釋)"te…

python程序運行原理_談談 Python 程序的運行原理

因為我的個人網站 restran.net 已經啟用&#xff0c;博客園的內容已經不再更新。請訪問我的個人網站獲取這篇文章的最新內容&#xff0c;談談 Python 程序的運行原理 這篇文章準確說是『Python 源碼剖析』的讀書筆記&#xff0c;整理完之后才發現很長&#xff0c;那就將就看吧。…

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分鐘內…

微信小程序 等待幾秒、_微信小程序—setTimeout定時器的坑

背景實驗室需要將項目的app搬到微信的小程序上&#xff0c;終于知道為什么程序員是手藝人了&#xff0c;只要有需求&#xff0c;就要想方設法去填充這種需求&#xff0c;去年是小程序的元年了可以說&#xff0c;去年冬天一個叫跳一跳的小程序游戲出現在我的微信中&#xff0c;當…

linux中斷處理模式,Linux在保護模式下的中斷處理分析.pdf

Linux在保護模式下的中斷處理分析.pdfLinux 在保護模式下的中斷處理分析劉萬里 楊 斌(西南交通大學計算機與通信工程學院&#xff0c;成都 610031)E-mail&#xff1a;awan摘 要 該文以 80x86 保護模式下的中斷處理方法為基礎&#xff0c;針對 Linux 在實時嵌入式系統中的具體應…

python3.7是什么_Python 3.7 有什么新變化

idlelib 與 IDLE 多個對自動補全的修正。 &#xff08;由 Louie Lu 在 bpo-15786 中貢獻。&#xff09; Module Browser (在 File 菜單中&#xff0c;之前稱為 Class Browser) 現在會在最高層級函數和類之外顯示嵌套的函數和類。 &#xff08;由 Guilherme Polo, Cheryl Sabell…

4.JVM簡述

JVM是一種規范。 就是一個虛擬的用于執行bytecodes字節碼的計算機 可以用軟件來實現&#xff0c;如IBM,SUN,BEA等按照這個規范實現&#xff0c;可以實現比SUN公司更好的JVM&#xff0c;我們自己也可以實現一個。 可以使用硬件來實現&#xff0c;如sun與intel公司研發java的芯…

python ssh shell交互_使用Paramiko在Python上用ssh實現交互式shell?

我想編寫一個程序(在Windows 7上的Python 3.x中),它通過ssh在遠程shell上執行多個命令.在查看paramikos的exec_command()函數之后,我意識到它不適合我的用例(因為在執行命令后通道被關閉),因為命令依賴于環境變量(由先前的命令設置)并且不能連接到一個exec_command()調用,因為它…

linux7如何進入緊急模式,CentOS7開機進入緊急模式EmergencyMode的解決辦法

iOS Runtime學習筆記Associated Objects: interface NSObject (AssociatedObject) property (nonatomic, strong) id associat ...Vim&#xff0c;極簡使用教程&#xff0c;讓你瞬間脫離鍵鼠切換的痛苦注:看大家對Vim仇恨極大,其實它只是一種文本操作方式,可以減少鍵鼠的切換,從…

用pycharm寫python_如何利用pyCharm編寫和運行python文件

在安裝python環境后&#xff0c;通常可以利用IDE pyCharm來編譯我們的python文件。創建一個python文件夾&#xff0c;用pyCharm打開文件夾&#xff0c;在文件夾中新建一個python文件demo.py 也許你知道用cmd中的python指令 python demo.py去運行這個文件&#xff0c;但是如何在…