объединить элементы в массивы в RDD - PullRequest
0 голосов
/ 08 сентября 2018

как я могу преобразовать RDD[(Int,Int)] в RDD[Array[(Int,Int)]], где я комбинирую элементы с их ключом.

Допустим,

(0,0), (1,0), (1,1), (0,1)

и я хочу, чтобы это был Array arr1 = ((0,0), (1,0)) и arr2 ((1,1), (0,1)) Таким образом, полученный rdd будет иметь arr1, arr2 как массивы.

1 Ответ

0 голосов
/ 08 сентября 2018

В основном вы пытаетесь сгруппировать RDD[TupleN] по i -ому элементу. Вы можете использовать

rdd.groupBy(_._1)

для создания

Map[T, RDD[TupleN]]

, где ключом будет i-й элемент (т. Е. 0 или 1 в вашем примере).

Затем вы можете отобразить значения этой карты в массив с помощью mapValues(_.toArray)

...