当前位置: 首页 > 知识库问答 >
问题:

Neo4j密码-用加载CSV创建节点和设置标签

杨腾
2023-03-14
LOAD CSV WITH HEADERS FROM 'file:///testfile.csv' AS line
CREATE (x:line.label)

共有1个答案

颛孙喜
2023-03-14

二便士,

首先,对于Java批处理导入应用程序来说,这很容易做到,编写它们也不难。请参见此批插入器示例。您可以使用opencsv读取CSV文件。

如果您宁愿使用Cypher,并且有一组有限的标签可以使用,那么您可以这样做:

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:///testfile.csv' AS LINE
CREATE (n:load {lab:line.label, prop:line.prop});

CREATE INDEX ON :load(lab);

MATCH (n:load {lab:'label1'})
SET n:label1
REMOVE n:load
REMOVE n.lab;

MATCH (n:load {lab:'label2'})
SET n:label2
REMOVE n:load
REMOVE n.lab;
 类似资料:
  • 我有一个csv格式的数据集。其中一个字段是“elem_type”。基于此类型,我需要创建不同的类型节点,并在使用csv load加载数据时,根据“elem_type”为csv的“列”赋予不同的名称,有什么方法可以做到这一点吗? 我的csv没有标头,数据如下所示: 基于第一个colmuns,即我的“elem_type”,我要加载数据并定义3种类型的节点(Person,Car,Boat)

  • 我有一个csv格式的数据集。其中一个字段是类型,类似于枚举。基于此类型,我需要在使用csv LOAD加载数据时创建不同的类型、节点和关系。您可以在csv中调用具有定义子类型的属性的超级类型的行。 我真的不知道如何在Cypher中做到这一点。我唯一的选择是将一个csv文件拆分为每种类型的csv文件,并运行不同的密码吗?

  • 我希望它创建每个节点(而不是在已经存在具有相同ID的节点时创建新节点),并创建每个关系(在CSV中指定具有多个关系的节点中有多个关系from/to节点)。 实际发生的情况:它似乎创建了所有唯一的节点。它还创建了节点之间的关系,但它只为每个节点设置一个关系,而不考虑与多个其他节点进行通信的一些节点。 我很困惑,因为我的理解是,如果在数据库中还没有出现关系,它将创建关系,所以我认为它将创建CSV中指定

  • 我使用以下命令将数据从csv文件加载到Neo4j中。输入文件很大,有数百万行。当这个查询运行时,我可以查询节点的数量并检查进度。但是一旦它停止创建节点,我想它就会继续创建关系。但我无法检查这一步的进展。 我有两个疑问: 它是否处理每一行文件的命令,即为每一行源码创建节点和关系等?? 或者它一次创建所有节点,然后创建关系。 下面是加载文件的密码器。

  • 请有人给我指个正确的方向。