Как можно было бы выполнить операцию с участием rdd внутри исполнителей с mapPartition или что-то подобное? - PullRequest
0 голосов
/ 18 мая 2018

Я хочу сделать что-то подобное:

val myBigRdd2: RDD[_] = ???
myBigRdd1.mapPartition{ dataBlock => 
    // operation involving dataBlock and an other RDD
    // like myBigRdd2.multiply(dataBlock) 
    // if myBigRdd2 is a matrix. Or something similar.
}

Есть ли способ передать СДР исполнителю?

Я думаю, Broadcast на rdd2 не будетработать, потому что он слишком большой.

И выполнение collect и grouped на rdd1 также не будет работать, потому что память драйвера будет взорвана.

Есть ли другой способ?

cartesian работает, но длится вечно.

1 Ответ

0 голосов
/ 18 мая 2018

Вы не можете передать RDD в mapPartition, так как это структура, известная только драйверу.Исполнители не могут использовать структуру СДР.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...