在 Neo4j 中加载 Gephi 输入 CSV
Load Gephi input CSV in Neo4j
我创建了一个与 Gephi 兼容的 csv 文件(节点和边缘文件),并在 Gephi 中导入了图形。但是,该图具有 geph 不支持的平行边。为此,我搬到了 Neo4j。但是,我发现很难将用于 Gephi 的 csv 文件导入到 Neo4j 中。
我查看了 Neo4j 文档以导入 csv 文件,但是它认为这些文件是 rdms 样式。
请帮助在 Neo4j 中加载边缘和节点 csv 文件。
示例节点文件:
Id;attr1;attr2
2;23;A
1;34;B
示例边缘文件:
Source;Target;attr3
1;2;Plays
看看 Cypher 的 LOAD CSV functionality。使用您的示例文件,将数据加载到 Neo4j 中的 Cypher 语句如下所示:
首先,label/property 上的 create a uniqueness constraint 标识唯一 ID(我将在此处使用 Person
标签,但更改为适合您域的任何内容):
CREATE CONSTRAINT ON (p:Person) ASSERT p.personID IS UNIQUE;
然后遍历 nodes.csv
文件,为 csv 文件中的每一行创建一个节点:
LOAD CSV WITH HEADERS FROM "file:///nodes.csv" AS row FIELDTERMINATOR ';'
MERGE (n:Person {personID: row.Id})
SET n.attr1 = row.attr1,
n.attr2 = row.attr2;
请注意,对于 Neo4j 3.0+,默认情况下文件 url 是相对于 $NEO4j_HOME
.
中的 import
目录的
然后创建关系:
LOAD CSV WITH HEADERS FROM "file:///rels.csv" AS row FIELDTERMINATOR ';'
MATCH (source:Person) WHERE source.Id = row.Source
MATCH (target:Person) WHERE target.Id = row.Target
MERGE (source)-[r:KNOWS]->(target)
SET r.attr3 = row.attr3;
有关更多信息,请参阅 this example in the docs info/options。
我创建了一个与 Gephi 兼容的 csv 文件(节点和边缘文件),并在 Gephi 中导入了图形。但是,该图具有 geph 不支持的平行边。为此,我搬到了 Neo4j。但是,我发现很难将用于 Gephi 的 csv 文件导入到 Neo4j 中。
我查看了 Neo4j 文档以导入 csv 文件,但是它认为这些文件是 rdms 样式。
请帮助在 Neo4j 中加载边缘和节点 csv 文件。
示例节点文件:
Id;attr1;attr2
2;23;A
1;34;B
示例边缘文件:
Source;Target;attr3
1;2;Plays
看看 Cypher 的 LOAD CSV functionality。使用您的示例文件,将数据加载到 Neo4j 中的 Cypher 语句如下所示:
首先,label/property 上的 create a uniqueness constraint 标识唯一 ID(我将在此处使用 Person
标签,但更改为适合您域的任何内容):
CREATE CONSTRAINT ON (p:Person) ASSERT p.personID IS UNIQUE;
然后遍历 nodes.csv
文件,为 csv 文件中的每一行创建一个节点:
LOAD CSV WITH HEADERS FROM "file:///nodes.csv" AS row FIELDTERMINATOR ';'
MERGE (n:Person {personID: row.Id})
SET n.attr1 = row.attr1,
n.attr2 = row.attr2;
请注意,对于 Neo4j 3.0+,默认情况下文件 url 是相对于 $NEO4j_HOME
.
import
目录的
然后创建关系:
LOAD CSV WITH HEADERS FROM "file:///rels.csv" AS row FIELDTERMINATOR ';'
MATCH (source:Person) WHERE source.Id = row.Source
MATCH (target:Person) WHERE target.Id = row.Target
MERGE (source)-[r:KNOWS]->(target)
SET r.attr3 = row.attr3;
有关更多信息,请参阅 this example in the docs info/options。