Я просыпаюсь в части графических фреймов, где мне нужно иметь ребра / ссылки в d3.js, чтобы они были в индексированных значениях вершин / узлов в качестве источника и места назначения.
Теперь у меня есть VertexDF
как
+--------------------+-----------+
| id| rowID|
+--------------------+-----------+
| Raashul Tandon| 3|
| Helen Jones| 5|
----------------------------------
EdgesDF
+-------------------+--------------------+
| src| dst|
+-------------------+--------------------+
| Raashul Tandon| Helen Jones |
------------------------------------------
Теперь мне нужно преобразовать это EdgesDF
, как показано ниже
+-------------------+--------------------+
| src| dst|
+-------------------+--------------------+
| 3 | 5 |
------------------------------------------
Все значения столбцов должны иметь индекс имен, взятых из VertexDF
. Я ожидаю в Higher-order functions
.
Мой подход заключается в том, чтобы преобразовать VertexDF
в карту, затем выполнить итерацию EdgesDF
и заменить каждый раз.
Что я уже пробовал
сделал карту имени для идентификаторов
val Actmap = VertxDF.collect().map(f =>{
val name = f.getString(0)
val id = f.getLong(1)
(name,id)
})
.toMap
Использовал эту карту с EdgesDF
EdgesDF.collect().map(f => {
val src = f.getString(0)
val dst = f.getString(0)
val src_id = Actmap.get(src)
val dst_id = Actmap.get(dst)
(src_id,dst_id)
})