CSV загрузить в Neo4j и создать отношения - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть CSV-файл с приведенными ниже столбцами и предоставленными примерами данных, и я загрузил в Neo4j и застрял, когда пытался создать отношения.

**source destination miles**
a         b         5
a         c         6
a         d         20

Теперь я хочу создать график с источником в центре и соединенными пунктами назначения и маркировать милями между двумя остановками (звездный график с источником в середине), поэтому я попробовал ниже запросы, это невозвращая мили на этикетке, я новичок в Neo4j, любая помощь приветствуется, спасибо заранее.

LOAD CSV WITH HEADERS FROM "file:///sample.csv" AS line
CREATE (s:src{id: line.source}) 
CREATE (d:dst{id: line.destination}) 
CREATE (s)-[r:trips {total: [line.miles]}]->(d)
RETURN s, d, r;

1 Ответ

0 голосов
/ 28 ноября 2018

По умолчанию LOAD CSV ожидает, что файл CSV будет использовать разделители запятых, и он не поддерживает посторонние пробелы.Попробуйте изменить содержимое файла CSV следующим образом:

source,destination,miles
a,b,5
a,c,6
a,d,20

Кроме того, вы должны использовать MERGE вместо CREATE, чтобы избежать создания дублирующих узлов.И нет очевидной необходимости хранить значение миль в массиве, поэтому этот запрос сохраняет его в виде скалярного значения:

LOAD CSV WITH HEADERS FROM "file:///sample.csv" AS line
MERGE (s:src {id: line.source}) 
MERGE (d:dst {id: line.destination}) 
CREATE (s)-[r:trips {miles: line.miles}]->(d)
RETURN s, d, r;

Результат выше:

╒══════════╤══════════╤══════════════╕
│"s"       │"d"       │"r"           │
╞══════════╪══════════╪══════════════╡
│{"id":"a"}│{"id":"b"}│{"miles":"5"} │
├──────────┼──────────┼──────────────┤
│{"id":"a"}│{"id":"c"}│{"miles":"6"} │
├──────────┼──────────┼──────────────┤
│{"id":"a"}│{"id":"d"}│{"miles":"20"}│
└──────────┴──────────┴──────────────┘
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...