您好,我试图将CSV文件中的某些数据导入到我的ubuntu 12.04中的neo4j。
csv文件是两列数据文件,没有标题,其格式如下:
12ffew3213,232rwe13
12ffew3213,5yur2ru2r
rwerwerw3,432rwe13
rwerwerw3,5yur2ru2r
问题是行0和行1中的数据不是唯一的,例如,数据可能是3000行,并且只有100个唯一的row0值和300个唯一的row1值。
我想构建一个具有唯一100个row0节点和300个row1节点以及这些节点之间的3000个关系的图形(如果12ffew3213,232rwe13出现两次,则有2条边)。
由于我是neo4j和Cypher的新手。在尝试使用CREATE和MERGE一段时间后,我仍然无法构建UNIQUE节点。我用过类似的东西
LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (:A { number: toString(line[0])})-[:LIKES]->(:B { ID: toString(line[1])})
有什么想法吗?谢谢!
最佳答案
这就是你要做的。
LOAD CSV FROM 'file:///home/nate/Downloads/file.csv' AS line
MERGE (n:A {number : line[0]})
WITH line, n
MERGE (m:B {ID : line[1]})
WITH m,n
MERGE (n)-[:LIKES]->(m);
首先创建或匹配
:A
节点,然后创建或匹配:B
节点,然后创建或匹配关系。 WITH
子句收集序列中每个点的结果,以供下一步使用。要了解有关WITH
子句的更多信息,请阅读Section 9.5 in the Neo4j Manual。
关于neo4j - 如何通过neo4j中导入的csv文件创建唯一的节点和关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25090255/