Как интерсекать разные JavaPairRDD
У меня есть два разных JavaPairRdd один с Key1, значение и второй с key2, значение. Я пытаюсь достичь их слияния, но получить только предметы с одинаковым значением.
Я пробовал следующее:
JavaPairRDD<String, String> finalRdd = filteredRdd.intersection(filteredsmallRdd);
Где FilterRdd содержит ключ: Страна, значение и FilterSmallRdd содержит: ключ: идентификатор, значение. и мне нужно, чтобы элементы имели одинаковое значение, с пересечением я думаю, что сравниваю только ключ, и я получил пустое решение, есть идеи, как это сделать?
1 ответ
Решение
Ты можешь использовать swap
изменить значение в качестве ключа для каждого из rdd, а затем выполнить пересечение.
JavaPairRDD<String,String> finalRdd = filteredRdd.mapToPair(f -> f.swap()).intersection(filteredsmallRdd.mapToPair(f -> f.swap()));