2017-10-04 23 views

回答

0
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/

+0

非常感謝基肖爾·庫馬爾Suthar幫我出這個問題 –

+0

@MohitMIshra PLZ的,接受的答案,如果答案是正確的,這樣其他用戶的StackOverflow會沒有發現難度做同樣的事情。 –

相關問題