有没有办法将 gremlinpython 图形转换为 networkx 图形
Is there a way to cast a gremlinpython Graph to a networkx Graph
我想将 gremlinpython 图 (gremlin_python.structure.graph.Graph
) 转换为 networkx 图。
我发现使用包 ipython-gremlin (https://github.com/davebshow/ipython-gremlin) 可以将顶点转换为 pandas 数据帧,将边转换为 networkx.classes.multidigraph.MultiDiGraph
但是这个包已经过时了,我找不到他们进行转换的代码位置。有没有办法进行转换?
谢谢!
您可能需要编写一些代码来执行此操作。在使用 subgraph
步骤到 return 我感兴趣的图形部分之前,我已经完成了它,然后迭代创建 NetworkX 顶点和边。这相当简单。唯一需要注意的问题是当前的 Gremlin Python 客户端使用默认的 Tornado 最大结果帧大小,我认为它是 10mb,因此如果您的子图结果超过该大小,您将遇到异常。这是一个简单的例子,它在航线数据集中找到来自 SAF 机场的航线星图,并从中创建一个 NetworkX DiGraph
import networkx as nx
G = nx.DiGraph()
sg = g.V().has('code','SAF').outE().subgraph('sg').cap('sg').next()
for e in sg['@value']['edges']:
G.add_edge(e.outV.id,e.inV.id,elabel=e.label)
print(G.nodes())
print(G.edges())
当运行结果为
['44', '13', '20', '31', '8']
[('44', '13'), ('44', '20'), ('44', '31'), ('44', '8')]
我想将 gremlinpython 图 (gremlin_python.structure.graph.Graph
) 转换为 networkx 图。
我发现使用包 ipython-gremlin (https://github.com/davebshow/ipython-gremlin) 可以将顶点转换为 pandas 数据帧,将边转换为 networkx.classes.multidigraph.MultiDiGraph
但是这个包已经过时了,我找不到他们进行转换的代码位置。有没有办法进行转换?
谢谢!
您可能需要编写一些代码来执行此操作。在使用 subgraph
步骤到 return 我感兴趣的图形部分之前,我已经完成了它,然后迭代创建 NetworkX 顶点和边。这相当简单。唯一需要注意的问题是当前的 Gremlin Python 客户端使用默认的 Tornado 最大结果帧大小,我认为它是 10mb,因此如果您的子图结果超过该大小,您将遇到异常。这是一个简单的例子,它在航线数据集中找到来自 SAF 机场的航线星图,并从中创建一个 NetworkX DiGraph
import networkx as nx
G = nx.DiGraph()
sg = g.V().has('code','SAF').outE().subgraph('sg').cap('sg').next()
for e in sg['@value']['edges']:
G.add_edge(e.outV.id,e.inV.id,elabel=e.label)
print(G.nodes())
print(G.edges())
当运行结果为
['44', '13', '20', '31', '8']
[('44', '13'), ('44', '20'), ('44', '31'), ('44', '8')]