neo4j apo c узел слияния из json файла - PullRequest
0 голосов
/ 23 апреля 2020

Я использую инструмент neo4j apo c для загрузки данных из файла json, который хранится в формате hdf, пример содержимого файла выглядит следующим образом:

{"id":"572911761","label":"Label1","nickName":"xxx","screenName":"xxx","userType":2}
{"id":"111117971217247","label2":"Label","nickName":"dada","userType":2}
{"id":"111112559184932","label3":"Label","nickName":"Kwok","screenName":"kwok","userType":2}
{"id":"1447694416","label":"Label4","nickName":"Sylar","screenName":"sylar","userType":2}
{"id":"111111154273959","label":"Label2","nickName":"Chan","screenName":"kmuhk","userType":2}

Поле label является label of node in neo4j, означает, что я хочу установить Dynami c Метка путем чтения метки из файла в строке, мой входной шифр:

CALL apoc.load.json("hdfs://hdp1:8020/apoc/graph/apoc_graph_20200422202753_0_nodes") yield value 
call apoc.merge.node(value.label, {uid:value.uid}, {nickname:value.nickName,screen_name: value.screenName })

, и он выполняет ошибку, ошибка:

Neo.ClientError.Statement.SyntaxError
Neo.ClientError.Statement.SyntaxError: Query cannot conclude with CALL (must be RETURN or an update clause) (line 2, column 1 (offset: 98))
"call apoc.merge.node(value.label, {uid:value.uid}, {nickname:value.nickName,screen_name: value.screenName })"
 ^

Обратитесь за помощью, спасибо!

1 Ответ

0 голосов
/ 23 апреля 2020

Здесь очень полезно сообщение об ошибке, в котором говорится, что последняя строка вашего запроса должна быть обновлением графика (например, CREATE или MERGE), или, в противном случае, оператором RETURN , Здесь у нас есть CALL.

. Чтобы исправить, мы хотим получить объединенный узел из apoc.merge.node, а затем вернуть его:

CALL apoc.load.json("hdfs://hdp1:8020/apoc/graph/apoc_graph_20200422202753_0_nodes") yield value 
CALL apoc.merge.node(value.label, {uid:value.uid}, {nickname:value.nickName,screen_name: value.screenName }) YIELD node
RETURN node
...