2017-03-06 4 views
2

Mein Problem ist, dass ich Taskgröße zu große Warnungen bekomme, während ich Spark SQL verwende, um Tabellen in größere Tabellen zu denormalisieren.Wie vermeidet man "Task-Größe zu groß"?

Bevor die Leute auf andere Antworten zeigen, die sagen, man solle Broadcast benutzen oder vermeiden, die ganze Klasse zu schließen; Lassen Sie mich sagen, dass ich diese gelesen habe und immer noch speziell verwirrt bin, wenn ich Spark SQL benutze.

Ich habe Taskgrößen, die bei Verwendung von Spark SQL die empfohlene Größe um das Zehnfache übersteigen.

Hier ist die Situation:

  • Ich habe 10 + Tabellen/Daten-Frames in eine Über-Tabelle zu verbinden.
  • Ich habe ein einzelnes Scala-Objekt erstellt und im Body diese 10 Tabellen aus ihren CSVs ausgefüllt.
  • Ich importiere die Mitglieder dieses Objekts (nur die Tabellen) in anderen Objekten, wo die Berechnung zur Bildung der Uber-Tabellen ist.
  • Wenn der Spark-SQL zwischen diesen 10 Tabellen, die ausgeführt werden, um, sagen wir, die Ergebnistabelle in eine Parkettdatei schreiben, bekomme ich die Warnungen der Taskgröße.

Zusätzliche Informationen:

  • Ich habe versucht, die Quellentabellen in verschiedene Klassen zu bewegen und sie in Funktionen Einbettung und die Aufgabe Größen änderten sich nicht.

  • Ich bin mir nicht sicher, wie Broadcast dabei helfen könnte, da die Quelldaten mit Spark-CSV direkt in Datenrahmen gelesen werden und daher bereits verteilt werden sollten.

+0

Können Sie die Warnungen in die Frage aufnehmen? Können Sie den Code anzeigen, der zu den Warnungen führt? –

Antwort

-1

In Spark, können Sie die caching (persistence) level wählen einige große Objekte im Arbeitsspeicher auf die Festplatte zu entladen, und verwenden Sie unpersist() zu entscheiden, welche Ergebnisse bereits im Cache gespeichert wegzuwerfen.

+0

Bitte füllen Sie Ihre Antwort ein wenig mehr aus, wie zum Beispiel die Wahl einer Caching-Ebene, die große Speicherauslastung vermeidet, und ein Beispiel dafür, wie 'unpersist() 'verwendet werden kann, um Speicher freizugeben. – ktdrv

Verwandte Themen