2017-01-13 4 views
1

Ich habe ein Problem, wenn ich meinen Code in Spark-Shell ausführen.Taskgröße erhöhen Funke

[Stage 1:>    (0 + 0)/16] 
17/01/13 06:09:24 WARN TaskSetManager: Stage 1 contains a task of very large size (1057 KB). The maximum recommended task size is 100 KB. 
[Stage 1:>    (0 + 4)/16] 

Nach dieser Warnung wurde die Ausführung blockiert.

Wer kann ich es lösen?

Ich habe das versucht, aber es löst das Problem nicht.

Antwort

2

Es ist wahrscheinlich wegen der großen Anforderungen durch die Variablen in jeder Ihrer Aufgaben. Die akzeptierte Antwort auf diese question sollte Ihnen helfen.

+0

Ja l diesen Beitrag lesen, aber ich verstehe nicht, wie es zu benutzen. Kannst du mir ein Beispiel geben plz – user7375007

+0

Wenn ich versuche, habe ich einen Fehler wie Cartesian ist nicht Mitglied der Sendung – user7375007

+0

Dafür, entweder erstellen Sie eine neue Frage (bevorzugt) oder posten Sie Ihren Code und aktualisieren Sie Ihre Frage. Akzeptiere bitte auch die Antwort;) – code

0

hatte ich ähnliche Fehler:

scheduler.TaskSetManager: Stage 2 contains a task of very large size 
(34564 KB). The maximum recommended task size is 100 KB 

Meine Eingangsdaten der Größe war ~ 150 MB mit 4 Partitionen (das heißt, jede Partition der Größe war ~ 30MB). Das erklärt 34564 KB Größe in obiger Fehlermeldung erwähnt.

Grund: Aufgabe ist die kleinste Einheit der Arbeit in Funken, die auf Partitionen Ihrer Eingabedaten wirkt. Wenn also spark sagt, dass die Größe der Aufgabe größer ist als die empfohlene Größe, bedeutet dies, dass die Handhabung der Partition zu viele Daten enthält.

Lösung, die für mich gearbeitet:

reducing task size => reduce the data its handling => increase 
numPartitions to break down data into smaller chunks 
  • Also habe ich versucht, steigende Anzahl von Partitionen und bekam die Fehler beseitigen.
  • Man kann
  • Partitionen über df.rdd.getNumPartitions Anzahl der Partitionen in Datenrahmen überprüfen zu erhöhen: df.repartition(100)