2014-10-08 281 views
4

我有2個CSV文件,我想轉換成Neo4j數據庫。他們看起來像這樣:無法合併節點錯誤:Neo4j

first file: 

name,enzyme 
Aminomonas paucivorans,M1.Apa12260I 
Aminomonas paucivorans,M2.Apa12260I 
Bacillus cellulosilyticus,M1.BceNI 
Bacillus cellulosilyticus,M2.BceNI 

second file 

name,motif 
Aminomonas paucivorans,GGAGNNNNNGGC 
Aminomonas paucivorans,GGAGNNNNNGGC 
Bacillus cellulosilyticus,CCCNNNNNCTC 

正如你可以看到的共同因素是生物體的名稱和。每種有機體都會有一些酶,每種酶都會有一種主題。各種酶的基元可以相同。我用以下語句創建我的數據庫:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:C:/Users/Desktop.n_e.csv" AS csvLine 
MATCH (o:Organism { name: csvLine.name}),(e:Enzyme { name: csvLine.enzyme}) 
CREATE (o)-[:has_enzyme]->(e) 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:C:/Users/Desktop/n_m.csv" AS csvLine 
MATCH (o:Organism { name: csvLine.name}),(m:Motif { name: csvLine.motif}) 
CREATE (o)-[:has_motif]->(m) 

但是我不斷收到錯誤Cannot merge node using null property value for name (Failure when processing URL 'file:C:/Users/Desktop/n_e.csv' on line 2. No rows seem to have been committed. Note that this information might not be accurate.)。我GOOGLE了這個問題,但沒有得到任何工作解決方案。我確定我的CSV是「香草」csv(沒有空格,只有逗號分隔)。但我一直在收到這個問題。我使用的是Neo4j的2.1.3版本。任何幫助將非常感激。

文件1:n_e.csv 文件2:n_m.csv

+0

Hello letsc,我也會遇到這種錯誤。爲我解決的是我插入了'FIELDTERMINATOR',''。希望它能幫助你解決問題。 – Gondil 2015-04-14 13:54:58

回答

3
  1. 更新到2.1.5
  2. 閱讀如何檢查your data is read正確這篇博客。
  3. 此外,您可能會檢查您沒有Windows換行符或UTF 2字節文件前導碼
  4. 檢查您是否具有索引:生物體(名稱)和:酶(名稱)和:主題(名稱)在地方

一般來說試試這個並檢查輸出:

LOAD CSV WITH HEADERS FROM "file:C:/Users/Desktop.n_e.csv" AS csvLine 
RETURN csvLine 
LIMIT 5 

LOAD CSV WITH HEADERS FROM "file:C:/Users/Desktop.n_e.csv" AS csvLine 
RETURN csvLine.name,csvLine.enzyme 
LIMIT 5 
+0

我確實嘗試過。它執行任何錯誤,但結果顯示爲「顯示0個節點,0個關係」。我在這個問題中包含了一個鏈接到我的'.csv'文件。 。你可以看看他們。 AFAIK他們是正確的。 – letsc 2014-10-10 23:24:40

0

在我的情況的原因是在標題行的空間。例如,一個CVS文件:

Name, Surname, City 
Jan, Kowalski, Gdansk 

如此,Name是進口罰款,但Surname無法識別(爲空), 因爲是逗號和Surname等之間的空間中取出後,它開始加工。