使用Neo4j进行数据分析

时间:2014-06-20 17:07:34

标签: neo4j

我希望将我的Neo4j图形数据库与GraphLabdata analytics集成到{{1}}上。是否可以直接集成GraphLab而无需显式取出数据库快照?

是否有其他工具可以轻松与Neo4j集成?

如果不可能,那么关注的是Neo4j不允许以csv格式导出数据。而GraphLab只允许csv导入。

1 个答案:

答案 0 :(得分:1)

如果图表足够小以适应RAM,您可以通过几个步骤执行此导入:

  1. 使用neo4j-shell-tools从neo4j导出到GraphML。
  2. 使用NetworkX从GraphML导入NetworkX Graph对象(让我们称之为g)。
  3. 使用循环或列表推导将NetworkX图中的顶点和边添加到graphlab.SGraph(让我们称之为sg):
  4. import graphlab sg = graphlab.SGraph() sg = sg.add_vertices([graphlab.Vertex(i) for i in g.nodes()]) sg = sg.add_edges([graphlab.Edge(*edge) for edge in g.edges()])

    您也可以使用py2neo(如上面的评论中所述查询图表),而不是写入CSV,直接从查询中构建SGraph,使用add_vertices和add_edges,或者通过构建顶点/边缘SFrame然后使用它们来构造图形。这可能是一个更快的生产解决方案(没有中间磁盘表示),如果你的图形大于适合RAM的图形,也可能有助于解决内存大小限制。