2017-10-04 10 views
0

2つのテキストファイルがあります。私はすべて大文字の単語を書いたfile1.txtを、もう1つのファイル名はfile2 .txt、私はすべての小さな文字の単語を書いているので、どのように1つの減速のfile1.txtの大文字とdiffrent減速のfile2.txtのすべての小さな文字のこの入力分割を行うことができます。1つの入力ファイルを1つの減速機に入れ、別の入力ファイルを別の減速機に入れることができます

いずれかが私を助けてください。

答えて

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

どうもありがとうKishorクマールSutharは、plzはこの問題 –

+0

@MohitMIshraの私を助けて答えは右の他のStackOverflowのユーザーがなるようであれば、答えを受け入れるように同じことをするのが難しくありません。 –

関連する問題