У меня есть Rdd[(Int, Double)]
и array[Int]
, и я хочу получить новый Rdd[(Int, Double)]
только с теми Int
, которые существуют и в массиве.
Например, если мой array
равен [0, 1, 2]
и мой rdd
равен (1, 4.2), (5, 4.3)
, я хочу получить в качестве вывода rdd
только (1, 4.2)
Я думаю об использовании filter
с функцией, которая выполняет итерацию массива, выполнитесравнение и возврат true/false
но я не уверен, что это логика spark
.
Что-то вроде:
val newrdd = rdd.filter(x => f(x._1, array))
где
f(x:Int, y:Array[In]): Boolean ={
val z = false
for (a<-0 to y.length-1){
if (x == y(a)){
z = true
z}
z
}