Получение ошибки NEO4j "Ожидается, что Long (0) будет org.neo4j.values.storable.TextValue, но это был org.neo4j.values.storable.LongValue": 1 - PullRequest
0 голосов
/ 18 июня 2019

Я новичок в базе данных neo4j.Я пытаюсь обновить конкретные узлы из существующих узлов в графе DB, загрузив CSV-файл.мое обновленное значение CSV-файла выглядит следующим образом

ID,SHOPNAME,DIVISION,DISTRICT,THANA
01760,Xyz,RAJSHAHI,JOYPURHAT,Panchbibi
01761,Abc,DHAKA,GAZIPUR,Gazipur Sadar

и мой код запроса

CALL apoc.periodic.iterate('LOAD CSV WITH HEADERS FROM "file:///nodes_AGENT_U_20190610.csv" AS line return line','MERGE (p:Agent{ID:TOINT(line[0])}) ON MATCH SET p.SHOPNAME=TOINT(line[1]) ' ,{batchSize:10000, iterateList:true, parallel:true});

, но я получаю сообщение об ошибке

"Ожидаемое длинное значение (0)быть org.neo4j.values.storable.TextValue, но это было org.neo4j.values.storable.LongValue ": 1

Я пробовал функцию TOINTEGER для решения этой проблемы, но не работаетПожалуйста, помогите мне решить эту проблему.Я использую Neo4j 3.5 и apoc версии 3.5.0.4 Спасибо

1 Ответ

2 голосов
/ 18 июня 2019

Вам необходимо использовать column name для доступа к значению из строки / строки при загрузке данных с помощью LOAD CSV WITH HEADERS.

Проверьте следующий запрос:

CALL apoc.periodic.iterate('LOAD CSV WITH HEADERS FROM 
"file:///nodes_AGENT_U_20190610.csv" AS line return line',
'MERGE (p:Agent{ID:TOINT(line.ID)}) 
ON MATCH SET p.SHOPNAME=TOINT(line.SHOPNAME) ' ,
{batchSize:10000, iterateList:true, parallel:true});
...