Funke: Erhöhung der Anzahl von Partitionen, ohne dass ein shuffle?

Wenn die Verringerung der Anzahl von Partitionen kann man verwenden coalesce, das ist toll, weil es nicht zu einem shuffle-und scheint zu funktionieren sofort (keine zusätzliche job-Phase).

Möchte ich das Gegenteil tun manchmal, aber repartition induziert einen shuffle. Ich denke, vor ein paar Monaten habe ich diese arbeiten, die durch die Nutzung CoalescedRDD mit balanceSlack = 1.0 - also, was passieren würde, ist es aufgeteilt würde eine partition, so dass die sich ergebenden Partitionen Ort, wo alle auf dem gleichen Knoten (so klein net-IO).

Diese Art von Funktionalität ist die automatische Hadoop, man nur tweaks die split-Größe. Es scheint nicht zu funktionieren auf diese Weise in der Funke, es sei denn, man ist eine Verringerung der Anzahl von Partitionen. Ich denke die Lösung könnte sein, schreiben Sie eine benutzerdefinierte Partitionierer zusammen mit einem custom-RDD, wo wir definieren getPreferredLocations ... aber ich dachte, das ist eine so einfache und gewöhnliche Sache zu tun, doch es muss ein straight forward Weise, es zu tun?

Sachen ausprobiert:

.set("spark.default.parallelism", partitions) auf meine SparkConf, und wenn in den Kontext des Lesens Parkett ich habe versucht sqlContext.sql("set spark.sql.shuffle.partitions= ..., die auf 1.0.0 verursacht einen Fehler UND nicht wirklich wollen, ich will, ich will die partition Nummer zu ändern, die über alle Arten von Arbeit, nicht nur mischt.

  • Viel Glück finden eine Lösung dafür?
InformationsquelleAutor samthebest | 2014-11-20
Schreibe einen Kommentar