2014-07-09 20 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) 
相關問題