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

c1   p1  q1  d1 

c2   p2  q2  d2 

Ausgabe lösen müssen wie- wenn der Kunde p1 hat es kaufen flag as 1 sonst geben sollte es sollte flag 0 geben. Es gibt Millionen von Kunden und Millionen von Produkten. Unten ist die erforderliche Ausgabe. Jede Hilfe wird sehr geschätzt.Benötigen Sie Hilfe bei diesem mapreduce Code

c1 p1 q1 d1 1 

c1 p2 q1 d1 0 

c2 p2 q2 d2 1 

c2 p1 q2 d2 0 

Antwort

0

können Sie es mit nur einem mapside Logik erreichen, Beispielcode für Ihre Referenz:

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

Danke für die Hilfe. Aber hier ist es nicht nur p1 und p2, es ist nur ein Beispiel. Es hat Millionen von Produkten und Millionen von Kunden. – Som7

+0

Sure @ Som7 Ich bin bereit zu helfen. Können Sie mehr über die Problemaussage erfahren, ich meine, wie Sie den Flaggenstatus für mehr als zwei Produkte handhaben wollen, wird es immer noch binär (1 oder 0) oder irgendwelche anderen Beschränkungen sein? – Aditya

+0

Basierend auf der Problemstellung können wir ein geeignetes Designmuster in MR diskutieren und auswählen und die Lösung implementieren. – Aditya