Скажем, учитывая список атрибутов СДР как attrs
в качестве исходных атрибутов ребер графа и графа graph
, как я могу получить все соседние вершины / десты этих источников?Сейчас я пытаюсь:
val map = attrs.zipWithUniqueId().collectAsMap()
val neighbors = graph.triplets.collect {case t if map.contains(t.srcAttr) => t.dstAttr}.distinct()
Но, похоже, есть проблемы:
1) Похоже, что это не дает мне правильный отфильтрованный результат, например, я виделслучай, когда атрибут элемента не был в карте, но его соответствующий сосед был в результате.
2) При выполнении collectAsMap () вход должен быть помещен в память, верно?Как насчет того, чтобы в качестве входных данных у нас был довольно большой список атрибутов?
Так кто-нибудь мог бы предложить лучший способ сделать это?Спасибо!