Как интерсекать разные 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()));
Другие вопросы по тегам