代码之家  ›  专栏  ›  技术社区  ›  en1

使用neo4j和cypher将稀疏矩阵从.csv直接导入到图形中

  •  0
  • en1  · 技术社区  · 8 年前

    我有一个小的有向图存储在.csv中,作为稀疏矩阵。该文件由以下格式的2列组成:

    1,2
    2,3
    1,3
    1,4
    2,5
    3,4
    3,5
    4,5
    

    每一行基本上是两个节点之间的邻接关系:1->2,2->3,1->我想将这些数据导入neo4j并创建一个图(作为第一步,它可以是无向图)。

    我尝试了以下密码:

    LOAD CSV FROM 'file:///dummy.csv' AS line
    CREATE((:node {`name`:line[1]})-[:`connects`]->(:node {`name`:line[2]}))
    

    这是我迄今为止走得最远的一次,但结果并不是我想要的。我正在将文件读入neo4j,但我只得到了由两个节点和多个节点重复组成的多个小图形。我的目标是将每一行作为邻接关系读取,并将连接添加到现有节点,而不会产生节点重复。此外,在图形可视化过程中,我希望在每个节点的顶部显示每个节点的名称属性(而不是节点id)。感谢你的帮助。

    1 回复  |  直到 8 年前
        1
  •  2
  •   cybersam    8 年前

    你应该使用 MERGE 要避免创建重复的节点和关系,请执行以下操作:

    LOAD CSV FROM 'file:///dummy.csv' AS line
    MERGE (a:node {name:line[0]})
    MERGE (b:node {name:line[1]})
    MERGE (a)-[:connects]->(b);
    

    另请参见 the documentation for how to style the browser visualization .