2017-01-13 3 views
1

У меня возникла проблема при выполнении кода в искровой оболочке.увеличить размер задачи искру

[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] 

После этого предупреждения блокировка выполнена.

Кто может это решить?

Я пробовал это, но это не решает проблему.

val conf = new SparkConf() 
    .setAppName("MyApp") 
    .setMaster("local[*]") 
    .set("spark.driver.maxResultSize", "3g") 
    .set("spark.executor.memory" ,"3g"); 
val sc = new SparkContext(conf);` 

ответ

2

Это, скорее всего, из-за требований большого размера по переменным в любой из ваших задач. Ответ на этот вопрос question должен помочь вам.

+0

Да л прочитал этот пост, но я не понимаю, как использовать его. Можете ли вы привести мне пример plz – user7375007

+0

Когда я попробую, у меня есть такая ошибка, как cartesian не входит в трансляцию – user7375007

+0

Для этого либо создайте новый вопрос (желательно), либо разместите свой код и обновите свой вопрос. Также, пожалуйста, примите ответ;) – code

0

Я имел подобную ошибку:

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

Мой ввод данных был размером ~ 150 Мб с 4 разделов (т.е. каждый раздел был размером ~ 30 МБ). Это объясняет размер 34564 KB, указанный в приведенном выше сообщении об ошибке.

Причина: Задача - наименьшая единица работы в искре, которая действует на разделы ваших входных данных. Следовательно, если искра говорит о том, что размер задачи больше рекомендуемого размера, это означает, что в его обработке слишком много данных.

Решение, которое работало для меня:

reducing task size => reduce the data its handling => increase 
numPartitions to break down data into smaller chunks 
  • Итак, я попытался все большее число разделов и избавились от ошибки.
  • Можно проверить количество разделов в dataframe через df.rdd.getNumPartitions
  • Для увеличения разделов: df.repartition(100)
Смежные вопросы