我正在处理图框部分,我需要在 d3.js 中有边/链接,以便在顶点/节点的索引值中作为源和目标。
现在我VertexDF
有
+--------------------+-----------+
| id| rowID|
+--------------------+-----------+
| Raashul Tandon| 3|
| Helen Jones| 5|
----------------------------------
EdgesDF
+-------------------+--------------------+
| src| dst|
+-------------------+--------------------+
| Raashul Tandon| Helen Jones |
------------------------------------------
现在我需要将其转换EdgesDF
如下
+-------------------+--------------------+
| src| dst|
+-------------------+--------------------+
| 3 | 5 |
------------------------------------------
所有列值都应该具有取自VertexDF
.I 的名称索引。我期待在Higher-order functions
. 我的方法是转换VertexDF
为地图,然后迭代EdgesDF
并替换每一次出现。
我试过的
将名称映射到 ids
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)
})