我有兩個文本文件可以說file1.txt,其中我寫了所有大寫字母單詞,另一個文件名是file2 .txt,其中我寫了所有的小寫字母,那麼如何在一個reducer中對file1.txt的所有大寫字母和diffrent reducer中的file2.txt的所有小寫字母進行此輸入分割。如何將一個Reducer中的一個Input數據文件和另一個Reducer中的另一個輸入文件數據放在一起
任何人都可以幫我一把。
我有兩個文本文件可以說file1.txt,其中我寫了所有大寫字母單詞,另一個文件名是file2 .txt,其中我寫了所有的小寫字母,那麼如何在一個reducer中對file1.txt的所有大寫字母和diffrent reducer中的file2.txt的所有小寫字母進行此輸入分割。如何將一個Reducer中的一個Input數據文件和另一個Reducer中的另一個輸入文件數據放在一起
任何人都可以幫我一把。
create custom partitionser.
分割器的主要目的是分區鍵,映射器輸出的中間密鑰的值對,該分區器將劃分基於我們的用戶定義的條件的數據,其工作像分區的散列function.The總數等於工作中減員的總數。 (job.setNumReduceTasks(n))。分區階段發生在映射階段之後,並在我們的mapreduce程序的reduce階段之前。默認分區函數是哈希分區函數,其中哈希是在密鑰上完成的。但是,根據鍵或值的其他功能對數據進行分區可能很有用。
//Set number of reducer tasks in drive program
job.setNumReduceTasks(2);
然後創建自定義的分區類並在數據值大小寫的基礎上添加分區映射數據的邏輯。
public static class customPartitioner extends Partitioner<Text,Text>{
public int getPartition(Text key, Text value, int numReduceTasks){
if(StringUtils.isAllUpperCase(value))
return 0;
else
return 1;
}
對於自定義分區的例子 - >http://www.hadooptpoint.org/hadoop-custom-partitioner-in-mapreduce-example/
非常感謝基肖爾·庫馬爾Suthar幫我出這個問題 –
@MohitMIshra PLZ的,接受的答案,如果答案是正確的,這樣其他用戶的StackOverflow會沒有發現難度做同樣的事情。 –