Загрузите входной CSV-файл Gephi в Neo4j

Я создал файлы csv (node ​​и edge fle), совместимые с Gephi, и импортировал график в Gephi. Однако у графа были параллельные ребра, что не поддерживается geph. С этой целью я перешел на Neo4j. Однако мне сложно импортировать файлы csv, используемые Gephi для импорта в Neo4j.

Я просмотрел документацию Neo4j, чтобы импортировать файлы csv, однако он считает эти файлы в стиле rdms.

Пожалуйста, помогите загрузить файлы csv краев и узлов в Neo4j.

Образец файла узла:

Id;attr1;attr2
2;23;A
1;34;B

Пример файла кромки:

 Source;Target;attr3
 1;2;Plays

person Shruti    schedule 03.06.2016    source источник


Ответы (1)


Ознакомьтесь с функцией ЗАГРУЗКИ CSV Cypher. Используя ваши файлы примеров, операторы Cypher для загрузки данных в Neo4j будут примерно такими:

Сначала создайте ограничение уникальности для метки / свойства, которое идентифицирует уникальный идентификатор. (Я просто использую здесь ярлык 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-адрес файла относится к каталогу import в $NEO4j_HOME.

Затем, чтобы создать отношения:

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;

См. этот пример в документации для получения дополнительной информации / опций.

person William Lyon    schedule 03.06.2016