Как использовать apoc.load.csv вместе с apoc.create.node

Мне нужно импортировать файл CSV и создать узел из каждой записи. Я использую APOC, потому что, предположительно, я могу использовать столбец в файле CSV для определения каждого типа узла при их создании.

Это не работает:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) return count(*)

Это ошибка:

Procedure call inside a query does not support naming results implicitly (name explicitly using `YIELD` instead) (line 2, column 1 (offset: 124))
"CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) return count(*)"

Я тоже пробовал этот синтаксис:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(map.AttributeName, {key:map.NodeID}) return count(*)

person nicomp    schedule 18.07.2017    source источник


Ответы (2)


Можете ли вы попробовать с этим:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","})  YIELD map
CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) YIELD node 
RETURN count(*)

Я просто добавляю материал YIELD в узел создания.

Ваше здоровье

person logisima    schedule 18.07.2017
comment
Это помогло. Я получаю сообщение об ошибке в данных, поэтому я не думаю, что запрос выполняет то, что, по моему мнению, должен делать. Как мне заставить его обрабатывать каждую строку в CSV и создавать узел из этой строки? - person nicomp; 18.07.2017

Вы забыли YIELD node процедуру после вызова apoc.create.node. Попробуй это:

CALL apoc.load.csv('FILE:///C:/Temp/Test/Test/Neo4jTest/import/Neo4j_AttributeProvenance.csv',{sep:","}) YIELD map
CALL apoc.create.node(['map.AttributeName'], {key:['map.NodeID']}) YIELD node
return count(*) 
person Bruno Peres    schedule 18.07.2017
comment
Это помогло. Я получаю сообщение об ошибке в данных, поэтому я не думаю, что запрос выполняет то, что, по моему мнению, должен делать. Как мне заставить его обрабатывать каждую строку в CSV и создавать узел из этой строки? - person nicomp; 18.07.2017
comment
Привет @nicomp. Чтобы ответить на этот вопрос, лучше всего знать, как выглядит ваш набор данных. Обратите внимание, что, возможно, вы задаете новый вопрос в комментариях. Я рекомендую вам задать новый вопрос, показывающий образец вашего набора данных. Спасибо! - person Bruno Peres; 18.07.2017
comment
stackoverflow.com/questions/45173312/ - person nicomp; 18.07.2017