При фильтрации левого соединения JavaRDD параметр «Отсутствует» (или «Присутствует») не может быть преобразован в необязJAVA

Программисты JAVA общаются здесь
Anonymous
При фильтрации левого соединения JavaRDD параметр «Отсутствует» (или «Присутствует») не может быть преобразован в необяз

Сообщение Anonymous »

По сути, я пытаюсь «вычесть», используя левое внешнее соединение.

Код: Выделить всё

JavaPairRDD allCustomers = ... (customerID, 1)
JavaPairRDD excludedCustomers = ... (customerID, 1)

JavaPairRDD joinedCustomers = allCustomers.leftOuterJoin(excludedCustomers)

JavaPairRDD filteredCustomers = joinedCustomers.filter(t -> !t._2._2.isPresent())
Но я получаю ошибки

Код: Выделить всё

java.lang.ClassCastException: com.google.common.base.Present cannot be cast to com.google.common.base.Optional
и

Код: Выделить всё

java.lang.ClassCastException: com.google.common.base.Absent cannot be cast to com.google.common.base.Optional
Я пробовал другие обходные пути, например сначала сопоставление и/или использование .orNull, но все равно получаю ту же ошибку.

Код: Выделить всё

JavaPairRDD joinedCustomersBoolean = joinedCustomers.mapValues(t -> t._2.orNull() == null);
И последнее, но не менее важное: установка spark.driver.userClassPathFirst = true не решает проблему.

Подробнее здесь: https://stackoverflow.com/questions/363 ... -to-option

Вернуться в «JAVA»