Ich habe zwei Tabellen, die ich gerne zusammenfügen würde. Einer von ihnen hat einen sehr schlechten Datenschräglauf. Dies führt dazu, dass mein Funke-Job nicht parallel läuft, da ein Großteil der Arbeit auf einer Partition ausgeführt wird.Apache Spark Handling Skewed Daten
Ich habe gehört und gelesen und versucht, meine Schlüssel zu salzen, um die Verteilung zu erhöhen. https://www.youtube.com/watch?v=WyfHUNnMutg um 12:45 Sekunden ist genau das, was ich gerne tun würde.
Jede Hilfe oder Tipps wären willkommen. Vielen Dank!
Gibt es eine scala-Bibliothek, die eine Schrägstellung kommen tut? Auch im zweiten Link zur Verfügung gestellt. Sie nehmen den ersten Schlüssel des Datenrahmens und fügen ihm eine Zufallszahl hinzu. Im zweiten Datenrahmen replizieren sie den Schlüssel n Mal, wobei n der Bereich der Zufälligkeit ist, den Sie dem ersten Datenrahmen hinzugefügt haben. Dies scheint machbar, wenn der zweite Datenrahmen klein ist. Ist dies der genaue und einzige Weg, meine obige Frage zu stellen? –
Ich habe Import com.tresata.spark.skewjoin.Dsl._ erfolgreich importiert Aber ich kann nicht die .skewJoin Methode auf meinem rdd von RDD [(String, row)] –
ich folgendes ausführen war finden: rdd1.skewJoin (RDD2, defaultPartitioner (RDD1, RDD2), DefaultSkewReplication (1)). sortByKey (true) .collect.toList Aber müssen drei Importe Import com.twitter.algebird.CMSHasherImplicits._ Import org.apache.spark.Partitioner .defaultPartitioner import com.tresata.spark.skewjoin.Dsl._ –