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

在NEO4J中加载csv如何创建关系?

松和安
2023-03-14

我使用以下命令将数据从csv文件加载到Neo4j中。输入文件很大,有数百万行。当这个查询运行时,我可以查询节点的数量并检查进度。但是一旦它停止创建节点,我想它就会继续创建关系。但我无法检查这一步的进展。

我有两个疑问:

  1. 它是否处理每一行文件的命令,即为每一行源码创建节点和关系等??
  2. 或者它一次创建所有节点,然后创建关系。
CREATE CONSTRAINT ON (n:Node) ASSERT n.key is UNIQUE;

下面是加载文件的密码器。

USING PERIODIC COMMIT
LOAD CSV FROM "file:///data/abc.csv" AS row
MERGE (u:Node {name:row[1],type:row[2],key:row[1]+"*"+row[2]})
MERGE (v:Node {name:row[4],type:row[5], key:row[4]+"*"+row[5]})
CREATE (u) - [r:relatedTo]-> (v)
SET r.type = row[3], r.frequency=toint(trim(row[6]));

共有1个答案

袁康裕
2023-03-14

对于CSV文件的每一行,Neo4j都在执行cypher脚本,即。:

MERGE (u:Node {name:row[1],type:row[2],key:row[1]+"*"+row[2]})
MERGE (v:Node {name:row[4],type:row[5], key:row[4]+"*"+row[5]})
CREATE (u) - [r:relatedTo]-> (v)
 SET r.type = row[3], r.frequency=toint(trim(row[6]))

由于使用定期提交,每500行(默认值)就完成一次提交。

只有当Neo4j完成对500行的解析时,您才能看到图表中的变化。

USING PERIODIC COMMIT
LOAD CSV FROM "file:///data/abc.csv" AS row

MERGE (u:Node {key:row[1]+"*"+row[2]})
  ON CREATE SET u.name = row[1],
                u.type = row[2]

MERGE (v:Node {key:row[4]+"*"+row[5]})
  ON CREATE SET v.name = row[4],
                v.type = row[5]

CREATE (u)-[r:relatedTo]->(v)
 SET r.type = row[3], r.frequency=toint(trim(row[6]));
 类似资料:
  • 这是一个使用周期性提交20000加载CSV的子句,其标题来自“http://192.3.4.101:8080/export/rel.CSV”作为行匹配(a:person{id:row.id}),(b:place{id:row.place_id})create(a)-[:row.relation_type]->(b) 这主要是图片中的rel.csv文件,用户“create(a)-[:type]->(

  • 下面是我的密码 请告诉我,我应该如何从csv文件指定关系。

  • 我正在尝试将单个csv加载到Neo4j DB中。我遵循了这个指导方针,但仍然不明白为什么对我不起作用。 列,instaGramId,imageDateCreated,imageTagCount,imageFilter,googleLabel_list 0,116 5524631240624607_638926073,1453161384,7,Normal,“[卡通,漫画,艺术品]” ... 我遵循

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

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