При фильтрации левого соединения 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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