neo4j - 加载csv文件并将行号存储为属性

时间:2016-10-31 18:37:53

标签: csv neo4j numbers cypher line

我有一个csv文件,其中该行按最重要的条目排序。我想将行号存储为属性以指示重要性。

例如:

Name
-----
abc
cde
xyz

我的Cypher看起来像这样:

LOAD CSV WITH HEADERS FROM
'file:///test.csv'  AS line 
WITH line

我想将line.name存储为节点名称,并将新属性“rank”存储在存储行号中。防爆。 1表示abc,2表示cde,3表示xyz。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:3)

使用行号作为输入不是一个好主意。强烈建议通过添加具有排名值的列来更改csv文件。

作为练习,您可以使用临时节点解决问题:

MERGE (tmp:TEMPNODE) SET tmp.line = 0
WITH tmp
LOAD CSV WITH HEADERS FROM 'file:///data.csv'  AS line 
WITH line
MATCH (tmp:TEMPNODE) SET tmp.line = tmp.line + 1
RETURN line, tmp.line as index

作为替代方案,请尝试使用apoc

CALL apoc.load.csv('url',{sep:";"}) YIELD lineNo, list, map