2017-05-15 190 views
0

我是neo4j中的新手,我試圖從兩個csv文件導入數據,但我無法做到。 兩個CSV文件的結構如下:如何從csv文件導入數據

master.csv:

ID NAME LASTNAME  COLLEGE 
01 aaa  bbb   ABC 
02 xxx  yyy   BCE 

award.csv:

playerID award     year 
01   best_player   2010 
01   rookie_of_the_year  2011 
02   best_player   2012 

我怎樣才能創建pl的節點ayers和獎項以及我如何連接它們?

我嘗試使用此代碼:(但顯然它不工作)

CREATE CONSTRAINT ON (a:PLAYER) ASSERT a.id IS UNIQUE; 

CREATE CONSTRAINT ON (b:AWARD) ASSERT b.award IS UNIQUE; 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "File:///master.csv" as line fieldterminator ';' 
CREATE (:PLAYER {id:line.playerID, name:line.firstName, lastName:line.lastName}); 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "File:///award.csv" as line fieldterminator ';' 
MATCH (player:Player {id:line.playerID}) 
MERGE (award:AWARD {award:line.award}) 
CREATE (player)-[r:won]->(award) 
set r += {year:line.year} 

如果我還要爲學校添加節點,是不是?

CREATE CONSTRAINT ON (c:COLLEGE) ASSERT c.name IS UNIQUE; 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///master.csv" as line fieldterminator ';' 
WITH line 
MATCH (player:PLAYER {id:line.playerID}) 
MERGE (college:COLLEGE {name:line.college}}) 
CREATE (player)-[:studied]->(college) 

感謝

+0

* ... MATCH(玩家:PLAYER)... – manfr27

+0

一切看起來不錯,問題可能是您嘗試在單個事務中運行它......您必須在單獨的事務中創建每個約束,然後分別運行第一個LOAD CSV和第二個LOAD CSV文件 –

+0

是的,我單獨運行每個查詢。 可能是csv文件的問題? – manfr27

回答

0

至於我可以看到它主要是在你的語句中使用正確的大小寫/箱/案例的問題。根據您顯示的內容是我想出了這樣的輸入(爲我工作):

CREATE CONSTRAINT ON (a:PLAYER) ASSERT a.id IS UNIQUE; 
CREATE CONSTRAINT ON (b:AWARD) ASSERT b.award IS UNIQUE; 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///master.csv" as line fieldterminator ';' 
CREATE (:PLAYER {id:line.bioID, name:line.firstName, lastName:line.lastName}); 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///award_players.csv" as line fieldterminator ';' 
WITH line 
MATCH (player:PLAYER {id:line.playerID}) 
MERGE (award:AWARD {award:line.award}) 
CREATE (player)-[r:won]->(award) 
SET r += {year:line.year}; 

希望這有助於,湯姆

+0

首先感謝回答我,但是當我運行第二個命令時,它會返回以下內容: (無更改,無記錄) – manfr27

+0

您是否可以共享輸入的實際內容(標題和首行幾行)文件(以上不能是他們,因爲你說你使用;作爲分隔符)。如果有任何不同的情況下,它將無法正常工作。 –

+0

是的,這兩個文件都具有相同的格式。 https://www.dropbox.com/s/mgjcsh6b7k9v63c/award_players.csv?dl=0 我也試圖與FIELDTERMINATOR「\ t」,但有同樣的結果 – manfr27