Как изменить количество разделов, используя coalesce?

1

Я использую искру с базой данных java и Cassandra, и в своей программе я использовал mapPartitions для запроса cassadra. Но я заметил, что мои mapPartitions выполняется только в одном искровом узле. Чтобы увидеть количество разделов в моем RDD, я использовал:

System.out.println(MyRDD.partitions().size());

И он отображает 1 раздел. Я обнаружил, что могу редактировать количество разделов usig:

JavaRDD MyRDD2= MyRDD.coalesce(8, false);

Но это не работает, и мой номер раздела еще 1.

Можете ли вы мне помочь, чтобы изменить количество разделов?

Теги:
apache-spark
cassandra-2.0

2 ответа

4
Лучший ответ

Вы должны установить shuffle в true, чтобы объединиться с большим количеством разделов:

JavaRDD MyRDD2= MyRDD.coalesce(8, true);
0
As per coalesce() function of RDD, we can reduce the number of partition. For increasing partition number repartition() function should use.

var textRDD = scontext.textFile("file:///home/rajeev/Test.scala", 3);

    print("================== "+textRDD.getNumPartitions);

   var newRDD = textRDD.coalesce(6, false);
print("==================:: "+newRDD.getNumPartitions+"\n");

   var newRDD1 = textRDD.coalesce(6, true);
print("==================:: "+newRDD1.getNumPartitions+"\n");

Output is 3 and 3 and 6 respective print statement.

Ideally it should not be happen. Please could you explain. Is it because we are shuffling data.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню