- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试找到最有效的方法来从 GraphFrames 函数 shortestPaths 获取 Map 输出并将每个顶点的距离映射展平到新 DataFrame 中的单独行中。通过将距离列拉入字典,然后从那里转换为 Pandas 数据帧,然后再转换回 Spark 数据帧,我已经能够非常笨拙地做到这一点,但我知道必须有更好的方法。
from graphframes import *
v = sqlContext.createDataFrame([
("a", "Alice", 34),
("b", "Bob", 36),
("c", "Charlie", 30),
], ["id", "name", "age"])
# Create an Edge DataFrame with "src" and "dst" columns
e = sqlContext.createDataFrame([
("a", "b", "friend"),
("b", "c", "follow"),
("c", "b", "follow"),
], ["src", "dst", "relationship"])
# Create a GraphFrame
g = GraphFrame(v, e)
results = g.shortestPaths(landmarks=["a", "b","c"])
results.select("id","distances").show()
+---+--------------------+
| id| distances|
+---+--------------------+
| a|Map(a -> 0, b -> ...|
| b| Map(b -> 0, c -> 1)|
| c| Map(c -> 0, b -> 1)|
+---+--------------------+
我想要的是采用上面的输出并拉平距离,同时将 id 保持为如下所示:
+---+---+---------+
| id| v | distance|
+---+---+---------+
| a| a | 0 |
| a| b | 1 |
| a| c | 2 |
| b| b | 0 |
| b| c | 1 |
| c| c | 0 |
| c| b | 1 |
+---+---+---------+
谢谢。
最佳答案
你可以爆炸:
>>> from pyspark.sql.functions import explode
>>> results.select("id", explode("distances"))
关于python - 将 GraphFrames ShortestPath Map 转换为 PySpark 中的 DataFrame 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37898313/
我有一个关于 OrientDB 的 shortestPath() 函数的问题。如果我查询 select shortestPath('#9:1', '#15:1', 'BOTH')针对 OrientDB
我正在尝试从最短路径 iGraph 函数创建的对象中收集所有唯一边。 > data data Q W E R T Y U I Q 0 4 7 5 0 4 0 0 W 2 0 5 7 3 2 4 9
我使用以下代码来查找两个节点之间的最短路径: Iterable spath = orientGraph.getRawGraph().command(new OSQLSynchQuery(
shortestPath() 函数将方向作为第三个参数。我如何修改该函数,使其只遍历特定类的边缘?我相信我可以将类添加为第 106 行的第二个参数: https://github.com/orient
我是 OrientDB 的新手,我想使用新的 shortestPath() 方法来获取两个顶点之间的边。 我做的是: OSQLSynchQuery sql = new OSQLSynchQuery("
当我尝试在 Person 节点和 Movie 节点之间执行 shortestPath() 函数时,例如 - MATCH p=shortestPath((:Person)-[*1..4]->(:Movi
以下查询的返回类型是什么?我该如何使用它?我尝试了几种方法,例如 Path , Iterable ,和其他人,但我总是遇到某种异常(exception)。好像是LinkedHashMap但是我可以使用
我正在尝试找到最有效的方法来从 GraphFrames 函数 shortestPaths 获取 Map 输出并将每个顶点的距离映射展平到新 DataFrame 中的单独行中。通过将距离列拉入字典,然后
我是一名优秀的程序员,十分优秀!