如何解决Neo4j/Cypher 导入 CSV 文件
我有一个 CSV 文件,它有 11 列:等级、年份、名称... 它包含最好的视频游戏销售。我是 Neo4j 和 cypher 的新手。
我正在尝试使用此密码查询将其导入到 neo4j:
LOAD CSV WITH HEADERS FROM 'file:///vgsales.csv' AS line CREATE (:Vgsales {rank: toInteger(line.Rank),name: line.Name,platform: line.Platform,year: toInteger(line.Year),genre: line.Genre,publisher: line.Publisher,NA_sales: toInteger(line.NA_Sales),EU_sales: toInteger(line.EU_Sales)],JP_sales: toInteger(line.JP_Sales),Other_sales: toInteger(line.Other_Sales),Global_sales: toInteger(line.Global_Sales)})
当我这样做时,我有节点,但它们之间没有关系,我需要用这个查询给出图形模型:调用 db.schema.visualization 但是当我这样做时只有一个空节点.
我不明白为什么没有任何关系。
解决方法
感谢您的回答。 我正在发回查询,因为有一个我忘记删除的“]”:
LOAD CSV WITH HEADERS FROM 'file:///vgsales.csv' AS line CREATE(v:Vgsales {rank: toInteger(line.Rank),name: line.Name,platform: line.Platform,year:toInteger(line.Year)}) WITH v MERGE (g:GENRE {genre: line.Genre}) MERGE (p:PUBLISHER {publisher: line.Publisher,NA_sales: toInteger(line.NA_Sales),EU_sales: toInteger(line.EU_Sales),JP_sales: toInteger(line.JP_Sales),Other_sales: toInteger(line.Other_Sales),Global_sales: toInteger(line.Global_Sales)}) MERGE (v)-[:IN_GENRE]->(g) MERGE (p)-[:PUBLISHED]->(v)
但是查询仍然不起作用。我有这个错误:enter image description here
这是我的数据集的样子:enter image description here
明天我必须做的练习是找到一个数据集,找到一个有问题的,并用一个插件算法回答它,然后获取图形模型并在neo4j中加载csv文件,但我不知道该怎么做添加节点之间的关系。
,您的脚本存在语法错误。您可以删除下面的这一行:
WITH v
我在我的 neo4j 浏览器上试过了,效果很好:
LOAD CSV WITH HEADERS FROM 'file:///vgsales.csv' AS line
CREATE(v:Vgsales {rank: toInteger(line.Rank),year:toInteger(line.Year)})
//WITH v <- remove this!
MERGE (g:GENRE {genre: line.Genre})
MERGE (p:PUBLISHER {publisher: line.Publisher,Global_sales: toInteger(line.Global_Sales)})
MERGE (v)-[:IN_GENRE]->(g)
MERGE (p)-[:PUBLISHED]->(v)
Result: Added 3 labels,created 3 nodes,set 11 properties,created 2 relationships,completed after 235 ms.
,
从您的代码来看,您似乎没有为 csv 中的每一行创建任何关系,而只是一个节点。 我的建议是先尝试创建一个模型。您可以使用 arrows.app 来尝试描述您的模型。
关系是通过连接两个节点来创建的
CREATE (:PERSON {name:"CHARLIE")-[:FOLLOWS]->(:PERSON {name:"JOHN"})
从你的代码 id 可能尝试类似的东西
LOAD CSV WITH HEADERS FROM 'file:///vgsales.csv' AS line CREATE(v:Vgsales {rank: toInteger(line.Rank),year: toInteger(line.Year)}) WITH v MERGE (g:GENRE {genre: line.Genre}) MERGE (p:PUBLISHER {publisher: line.Publisher,EU_sales: toInteger(line.EU_Sales)],Global_sales: toInteger(line.Global_Sales)}) MERGE (v)-[:IN_GENRE]->(g) MERGE (p)-[:PUBLISHED]->(v)
我不确定这是否适合您的模型,尽管您可以尝试绘制您的模型,也许我会写出更好的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。