使用Neo4j加载csv时遇到困难

问题描述 投票:0回答:1

我有一个带38,0000,0000行的csv文件,每行有两个名称,这意味着两个人互相认识:

name,friend
a,b
a,c
a,d
f,a
e,a
d,g

我需要计算所有人的关系。

首先,我使用密码:

CREATE (n:Patent {name:'a'})
CREATE (n:Patent {name:'b'})
CREATE (n:Patent {name:'c'})
CREATE (n:Patent {name:'d'})
CREATE (n:Patent {name:'e'})
CREATE (n:Patent {name:'f'})
CREATE (n:Patent {name:'g'})



MATCH (a:Patent {name:'a'}), 
      (b:Patent {name:'b'}) 
MERGE (a)-[:CITED]->(b)


MATCH (a:Patent {name:'a'}), 
      (b:Patent {name:'c'}) 
MERGE (a)-[:CITED]->(b)


MATCH (a:Patent {name:'a'}), 
      (b:Patent {name:'d'}) 
MERGE (a)-[:CITED]->(b)


MATCH (a:Patent {name:'f'}), 
      (b:Patent {name:'a'}) 
MERGE (a)-[:CITED]->(b)


MATCH (a:Patent {name:'e'}), 
      (b:Patent {name:'a'}) 
MERGE (a)-[:CITED]->(b)



MATCH (a:Patent {name:'d'}), 
      (b:Patent {name:'g'}) 
MERGE (a)-[:CITED]->(b)

然后,我得到了结果:

enter image description here

但是行数太大,我尝试了load csv批量导入命令:

:auto USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///friend_relation.csv" AS line
MATCH (a:Friend {name: line.name}), 
      (b:Friend {name: line.friend}) MERGE (a)-[:KNOWS]->(b)

失败:

enter image description here

我将大文件分割成许多samll文件,并使用csv load实现我的目标,我的问题是什么?

csv neo4j py2neo neo4jclient
1个回答
0
投票

如果不返回任何内容,是因为MATCH子句找不到任何内容:

尝试使用

:auto USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///friend_relation.csv" AS line
MERGE (a:Friend {name: line.name})
MERGE (b:Friend {name: line.friend}) 
MERGE (a)-[:KNOWS]->(b)
© www.soinside.com 2019 - 2024. All rights reserved.