У меня есть RDD формы:Spark: Пересечение списков не работает
t1-> (Long, List[Long])
и список формы
t2-> List[Long]
мне нужно выполнить объединение и пересечение списков. Я пробую следующий код:
val t1 = a.map(x => (x._1, (List(x._2)))).reduceByKey(_ ++ _)
val t2 = b.map(x => (x._1, (List(x._2)))).reduceByKey(_ ++ _).map(x => x._2).collect()
val t3intersect = t1.map(x => (x._1, (x._2.intersect(t2))))
val t3union = t1.map(x => (x._1, (x._2.union(t2))))
Хотя союз возвращает правильные результаты, пересечение всегда является пустым списком. Я не могу определить проблему. Пожалуйста помоги! Благодаря!
Вот пример:
(1, List(1596, 1617, 1929, 2399, 2674))
(2, List(1702, 1785, 1933, 2054, 2583, 2913))
(3, List(1982, 2002, 2048, 2341, 2666))
и
List(2002, 2399)
Это должно вернуть пересечение:
(1, List(2399))
(2, List())
(3, List(2002))
и союз:
(1, List(1596, 1617, 1929, 2399, 2674, 2002))
(2, List(1702, 1785, 1933, 2054, 2583, 2913, 2002, 2399))
(3, List(1982, 2002, 2048, 2341, 2666, 2399))
Если ответы людей помогли вам как-то решить проблему, может быть, вы должны принять один. – ale64bit