Я новичок в Spark. Я проверяю проблемы перетасовки в тестовом приложении, и я не знаю, почему в моей программе метод mapPartitionsWithIndex
вызывает перетасовку! Как вы можете видеть на картинке, у моего первоначального RDD есть два раздела размером 16 МБ и Shuffle пишут около 49,8 МБ. Я знаю, что map
или или mapPartitionsWithIndex
не перетасовывают трансформацию, как groupByKey
, но я вижу, что они также вызывают перетасовку в Spark. Зачем?Почему mapPartitionsWithIndex вызывает перетасовку в Spark?
Но, если это так, почему искра рассматривает этот метод как этап и не принимает во внимание следующую операцию соединения/группы в качестве заключительной операции в стадии ? –
Этап соответствует набору задач, каждый из которых выполняет один и тот же код, каждый из которых находится в другом подмножестве данных. Каждый этап содержит последовательность преобразований, которые могут быть выполнены без перетасовки полных данных. - http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-1/ – banjara
Я знаю, но я помню, что заключительная операция на каждом этапе обычно операция перетасовки, и если мы предположим, что после этого метода карты есть операция join/group, то она должна быть как заключительная операция на этом этапе и показывает вместо mapPartitionWithIndex. –