Neo4j CSV加载合并时出现空错误

Neo4j CSV加载合并时出现空错误,neo4j,cypher,Neo4j,Cypher,我需要在不创建重复节点的情况下向Neo4j数据库添加更多数据。合并应处理此问题,但在使用CSV加载时失败 我已经阅读了几个解决我问题的方法,但它们不适用于Neo4j 3.3.3。我的CSV测试文件很简单: Kit|sPOS|ePOS 102866|2781761|2783146 102866|2783227|2783836 102866|2783837|2783841 102866|2783842|2783861 102866|2784027|2790759 102866|2790762|279

我需要在不创建重复节点的情况下向Neo4j数据库添加更多数据。合并应处理此问题,但在使用CSV加载时失败

我已经阅读了几个解决我问题的方法,但它们不适用于Neo4j 3.3.3。我的CSV测试文件很简单:

Kit|sPOS|ePOS
102866|2781761|2783146
102866|2783227|2783836
102866|2783837|2783841
102866|2783842|2783861
102866|2784027|2790759
102866|2790762|2793652
我的密码查询是:

LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line
merge (b:BEDNode{sPOS:line.sPOS,ePOS:line.ePOS})
return b
报税表为:

无法使用SPO的null属性值合并节点

因此,它正在读取文件,但解释错误。CSV中的SPO没有空值

此带有create的Cypher查询将按预期生成节点:

LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line
create (b:BEDNode{sPOS:line.sPOS,ePOS:line.ePOS})
return b
LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line
merge (b:BEDNode)
return b
如果我没有属性,将按预期生成单个节点:

LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line
create (b:BEDNode{sPOS:line.sPOS,ePOS:line.ePOS})
return b
LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line
merge (b:BEDNode)
return b
我尝试过各种格式的建议解决方案,但都有相同的空错误。比如说,

LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line
merge (b:BEDNode{sPOS:line.sPOS})
on create set b.ePOS=line.ePOS
return b

这似乎是Neo4j中的一个bug。正在寻找有关我的错误或解决方法的帮助

加载CSV
使用逗号作为默认字段终止符。由于您使用的是管道,因此应使用
FIELDTERMINATOR
子句:

LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line FIELDTERMINATOR '|'
merge (b:BEDNode{sPOS:line.sPOS,ePOS:line.ePOS})
return b

LOAD CSV
使用逗号作为默认字段终止符。由于您使用的是管道,因此应使用
FIELDTERMINATOR
子句:

LOAD CSV WITH HEADERS FROM 'file:///bedupload.csv' AS line FIELDTERMINATOR '|'
merge (b:BEDNode{sPOS:line.sPOS,ePOS:line.ePOS})
return b

我只是注意到创建查询在生成节点时并没有创建它们的属性。我只是注意到创建查询在生成节点时并没有创建它们的属性。是的。我的CSV中也有一个错误。Neo4j需要引用。@DavidAStumpf这部分是正确的。不使用引号将在您的案例中生成整数属性。是。我的CSV中也有一个错误。Neo4j需要引用。@DavidAStumpf这部分是正确的。在您的案例中,不使用引号将生成整数属性。