2014-07-09 22 views
1

我有一个非常大的(〜24百万行)边缘列表,我试图导入到一个Neo4j图中,该图中填充了节点。 CSV文件有三列:from,to和period(关系属性)。我已经试过这使用REST API使用以下(Python)的代码:添加与现有节点的关系

batch_queue.append({"method":"POST","to":'index/node/people?uniqueness=get_or_create','id':1,'body':{'key':'name','value':row[0]}}) 
batch_queue.append({"method":"POST","to":'index/node/people?uniqueness=get_or_create','id':2,'body':{'key':'name','value':row[1]}}) 
batch_queue.append({"method":"POST","to":'{1}/relationships','body':{'to':"{2}","type":"FP%s" % row[2]}}) 

凡三线失败,随后还使用暗号声明:

USING PERIODIC COMMIT 
LOAD CSV FROM "file:///file-name.csv" AS line 
MATCH (a:Person {name: line[0]}),(b:Person {name:line[1]}) 
CREATE (a)-[:FOLLOWS {period: line[2]}]->(b) 

其中在小规模工作但是在使用整个列表时(还有较小的定期提交值),给了我一个“未知错误”。

任何指导我不正确地做什么,将不胜感激。

+0

从第一个块的第三行得到什么错误? – snorthway

+0

它返回错误500 /服务器错误 –

回答

2

你可能想看看我的批处理进口商为:http://github.com/jexp/batch-import

否则为LOAD CSV,在这里看到我的博客文章:http://jexp.de/blog/2014/06/load-csv-into-neo4j-quickly-and-successfully/

使用的Neo4j壳为LOAD CSV

根据你的内存可用,你可能不得不拆分数据。通过在文件上移动一个窗口(例如,下面的1M行)。你有为:Person(name)创建的索引/约束吗?

USING PERIODIC COMMIT 
LOAD CSV FROM "file:///file-name.csv" AS line 
WITH line 
SKIP 2000000 LIMIT 1000000 
MATCH (a:Person {name: line[0]}),(b:Person {name:line[1]}) 
CREATE (a)-[:FOLLOWS {period: line[2]}]->(b) 
相关问题