2016-12-13 1 views
0

Ich versuche einige Parameter mit Spark zu zählen. Ich habe das Beispiel für die Wortzahl verwendet. In diesem Beispiel können wir ein Wort zählen, aber ich frage mich, wie ich zwei Felder gleichzeitig zählen kann. HierSpark: Zählen Sie zwei Felder zusammen

ist das, was ich tun möchte:

Eingabedateien

{ 
    "redundancy":1, 
    "deviceID":"dv1" 
} 
{ 
    "redundancy":1, 
    "deviceID":"dv2" 
} 
{ 
    "redundancy":2, 
    "deviceID":"dv1" 
} 
{ 
    "redundancy":1, 
    "deviceID":"dv1" 
} 
{ 
    "redundancy":2, 
    "deviceID":"dv5" 
} 

Ausgabedateien

{ 
    "redundancy":1, 
    "count":3, 
    "nbDevice":2 
} 
{ 
    "redundancy":2, 
    "count":2, 
    "nbDevice":2 
} 

Ich frage mich, ob es bereits ein Beispiel für diesen Anwendungsfall oder wenn Sie irgendwelche Unterlagen oder Links haben, wäre ich sehr dankbar.

Antwort

1

Sie können Paare als Schlüssel verwenden.

Die Lösung kann wie folgt aussehen:

rdd.map(record => (record.firstField, record.secondField) -> 1) 
    .reduceByKey(_ + _)