我有一个csv文件,其中的行是排序与最重要的条目了。我想将行号存储为属性,以指示重要性。举例来说:
Name ----- abc cde xyz
我的Cypher看起来像这样:
LOAD CSV WITH HEADERS FROM 'file:///test.csv' AS line WITH line
我想将www.example.com存储line.name为节点名称和一个新属性“rank”,其中存储行号。示例1用于abc,示例2用于cde,示例3用于xyz。我如何才能做到这一点?
qyuhtwio1#
使用行号作为输入不是一个好主意。强烈建议通过添加一个具有rank值的列来更改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:
apoc
CALL apoc.load.csv('url',{sep:";"}) YIELD lineNo, list, map
cgfeq70w2#
我使用的是Cypher函数linenumber()(仅在LOAD CSV的上下文中可用):documentation
linenumber()
完整示例:(假设您有一个名为“Name”的CSV列)
LOAD CSV WITH HEADERS FROM "file:///C:/test.csv" AS line CREATE (n :MY_LABEL {Name: line.Name, rank: linenumber()} ) RETURN count(line)
RETURN语句是可选的。注:如果在Linux上,请将“file:/C:/test. csv”替换为“file:/test.csv”
2条答案
按热度按时间qyuhtwio1#
使用行号作为输入不是一个好主意。强烈建议通过添加一个具有rank值的列来更改csv文件。
作为练习,您可以通过使用临时节点来解决此问题:
作为替代,尝试使用
apoc
:cgfeq70w2#
我使用的是Cypher函数
linenumber()
(仅在LOAD CSV的上下文中可用):documentation完整示例:(假设您有一个名为“Name”的CSV列)
RETURN语句是可选的。
注:如果在Linux上,请将“file:/C:/test. csv”替换为“file:/test.csv”