【问题标题】:difficulty in using Neo4j load csv command使用 Neo4j 加载 csv 命令的困难
【发布时间】:2020-05-25 08:12:40
【问题描述】:

我有一个包含 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)

然后,我得到了结果:

但是行数太大,我试过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)

失败了:

我将大文件拆分为多个小文件并使用csv load 来实现我的目标,我的问题是什么?

【问题讨论】:

    标签: csv neo4j


    【解决方案1】:

    如果它没有返回任何东西,那是因为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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-16
      • 2017-10-01
      • 1970-01-01
      • 2021-10-08
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      相关资源
      最近更新 更多