2016-08-07 5 views
-1
Below is the data 

c1   p1  q1  d1 

c2   p2  q2  d2 

を解決するのに役立つ必要があります。数百万の顧客と何百万もの製品があります以下は必要な出力です。これに関する助言は高く評価されます。は、顧客が購入P1を持っているならば、それはそれは<code>flag 0</code>を与える必要があり、他の<code>flag as 1</code>を与える必要がありますlike-出力を必要とする、このMapReduceのコード

c1 p1 q1 d1 1 

c1 p2 q1 d1 0 

c2 p2 q2 d2 1 

c2 p1 q2 d2 0 

答えて

0

あなただけmapsideロジック、ご参考のためのサンプルコードでそれを達成することができます助けを

public void map(LongWritable key, Text value, Context context) 
     throws IOException, InterruptedException { 
    String line = value.toString(); 
    NullWritable value = NullWritable.get(); 
    String tokens[] = line.split("<your delim>"); 
    if (tokens[1] == "p1") { 
     line = line + "<your delim>" + "1"; 
    } else if (tokens[1] == "p2") { 
     line = line + "<your delim>" + "0"; 
    } 
    context.write(newText(line), value); 
} 
+0

感謝を。しかしここではp1とp2だけでなく、単なる例です。それは百万の製品と何百万の顧客を持っています。 – Som7

+0

確かに@ Som7私は手伝っています。 2つ以上の製品のフラグステータスをどのように処理したいのか、それはまだバイナリ(1または0)か他の制約ですか? – Aditya

+0

問題のステートメントに基づいて、MRで適切なデザインパターンを議論して選択し、解決策を実装するために頭を使うことができます。 – Aditya

関連する問題