Загрузка CSV Neo4j "Neo.ClientError.Statement.SemanticError: Невозможно объединить узел, используя нулевое значение свойства для Test1 '" - PullRequest
0 голосов
/ 07 ноября 2019

Я использую данные grades.csv по ссылке ниже,

https://people.sc.fsu.edu/~jburkardt/data/csv/csv.html

Я заметил, что все строки в файле csv были в "", и это вызывает

сообщения об ошибках: Neo.ClientError.Statement.SemanticError: Cannot merge node using null property value for Test1

, поэтому я удалил "" в заголовках

код, который я пытался запустить:

LOAD CSV WITH HEADERS FROM 'file:///grades.csv' AS row MERGE (t:Test1 {Test1: row.Test1}) RETURN count(t); сообщение об ошибке:

Neo.ClientError.Statement.SyntaxError: Type mismatch: expected Any, Map, Node, Relationship, Point, Duration, Date, Time, LocalTime, LocalDateTime or DateTime but was List<String> (line 2, column 24 (offset: 65)) "MERGE (t:Test1 {Test1: row.Test1})

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Проблемы:

  1. В файле отсутствует запятая после значения Test1 в строке для "Воздушный насос".
  2. В файле есть пробелы между значениями в каждомряд. (Найдите регулярное выражение ", +" и замените его на ",".)

Ваш запрос должен работать после устранения вышеуказанных проблем.

0 голосов
/ 07 ноября 2019

В принципе, вы не можете объединить узел, используя нулевое значение свойства. В вашем случае Test1 должен быть нулевым для одной или нескольких строк в вашем файле. Если вы не видите пустых значений для Test1, проверьте, есть ли пустая строка в конце файла.

Вы также можете обработать нулевую проверку перед MERGE, используя WHERE, например

LOAD CSV ... 
WHERE row.Test1 IS NOT NULL
MERGE (t:Test1 {Test1: row.Test1})
RETURN count(t);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...