Предположим, у меня есть второй RRD с тем же количеством строк, который содержит элементы, которые я хочу получить для каждой строки
1,4
2,3
Есть ли способполучить мои элементы?
Если у вас есть второй RDD, в котором уже есть номера групп, которые вы хотите для каждой строки, вы можете заархивировать их.Из документов Spark:
<U> RDD<scala.Tuple2<T,U>> zip(RDD<U> other, scala.reflect.ClassTag<U> evidence$13)
Архивирует этот RDD с другим, возвращая пары ключ-значение с первым элементом в каждом RDD, вторым элементом в каждом RDD и т. Д.
Итак, в вашем примере a, b, c, d
будет в паре ключ-значение с 1,4
и e, f, g, h
с 2,3
.Так что вы можете сделать что-то вроде:
val groupNumbers = lettersRDD zip numbersRDD
groupnumbers.map{tuple ->
val numbers: Seq[Int] = // get the numbers from tuple._2
val words = tuple._1.split(",") (words(numbers.head),words(numbers(1) ) }
}