У меня есть два RDD, скажем, A и B, типа RDD[Array[Int]]
, и я хочу вычислить разницу между A - B и B - A. Я попробовал следующий код
val R1 = A.subtract(B)
val R2 = B.subtract(A)
, но он не возвращает правильный ответ. В предыдущем ответе упоминается, что « Выполнение операций над множествами, таких как вычитание с изменяемыми типами (в этом примере массивом), обычно не поддерживается или, по крайней мере, не рекомендуется ». Поэтому я должен изменить код на
val A1 = A.map(_.to[ArrayBuffer]).persist()
val B1 = B.map(_.to[ArrayBuffer]).persist()
val R1 = A1.subtract(B1)
val R2 = B1.subtract(A1)
Теперь он возвращает правильный ответ. Я хочу знать , есть ли более эффективный способ сделать это .