【问题标题】:neo4j - loading csv file and store line number as a propertyneo4j - 加载 csv 文件并将行号存储为属性
【发布时间】:2016-10-31 18:37:53
【问题描述】:
我有一个 csv 文件,其中的行按最重要的条目排序。我想将行号存储为属性以指示重要性。
例如:
Name
-----
abc
cde
xyz
我的 Cypher 如下所示:
LOAD CSV WITH HEADERS FROM
'file:///test.csv' AS line
WITH line
我想将 line.name 存储为节点名称和存储行号的新属性“rank”。前任。 abc 为 1,cde 为 2,xyz 为 3。
我怎样才能做到这一点?
【问题讨论】:
标签:
csv
neo4j
numbers
cypher
line
【解决方案1】:
使用行号作为输入不是一个好主意。强烈建议通过添加具有排名值的列来更改 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