2017-03-03 6 views
0

Gibt es eine Möglichkeit, wie ich den Namen des Schlüssels in pyspark innerhalb der Funktion reduceByKey() bekommen kann, so dass ich bekommen kann, welcher Schlüssel ist üblich zwischen den beiden Werten in die reduceByKey() funktionieren?Schlüssel in reduceByKey() erhalten api funke

Zum Beispiel:

inside reduceByKey(combineValues) where 

def combineValues(a,b): 
//can i get the key value common to both a and b here ?? 
return a+b; 

Antwort

0

können Sie verwenden, um die aggregate Funktion auf RDD, aber verlieren Sie den HashPartitioner Nutzen, so würde ich vorschlagen, den Schlüssel in Ihren Werten zu speichern, wenn es wichtig ist.

+0

Also gibt es keine Möglichkeit, diesen Schlüsselnamen innerhalb der API wie aggregateByKey oder reduceByKey zu bekommen? Dies ist das erste Mal, dass ich Funken benutze, also entschuldige mich, wenn ich triviale Fragen stelle. Wollen Sie sagen, dass reduceByKey() die Hash-Partitionierung selbst durchführt? Ich dachte, du solltest das explizit für reduceByKey() tun. – Ujwal

+0

Ja, 'reduceByKey' wird einen Hash-Partitionierer auf Ihr Set setzen, deshalb haben Sie eigentlich keinen Zugriff auf den Schlüssel. Es garantiert, dass der Schlüssel an Ort und Stelle bleibt. –

Verwandte Themen