繁体   English   中英

通过 csv 将数据导入 neo4j 时出错

[英]Error in importing data into neo4j via csv


我是 neo4j 的新手。
我无法弄清楚我做错了什么?请帮忙。
 LOAD CSV WITH HEADERS FROM "file:///C:\Users\Chandra Harsha\Downloads\neo4j_module_datasets\test.csv" as line MERGE (n:Node{name:line.Source}) MERGE (m:Node{name:line.Target}) MERGE (n)-[:TO{distance:line.dist}]->(m)

错误信息:
无效输入's':预期四个十六进制数字指定 unicode 字符(第 1 行,第 41 列(偏移量:40))“加载 CSV WITH HEADERS FROM”file:///C:\Users\Chandra Harsha\setj_ne\ test.csv“作为行”

你这里有两个问题。

直接的错误是路径中的反斜杠被视为转义字符而不是文件夹分隔符 - 您要么必须转义反斜杠(只需将它们加倍),要么改用正斜杠。 例如:

LOAD CSV WITH HEADERS FROM "file:///C:\\Users\\Chandra Harsha\\Downloads\\neo4j_module_datasets\\test.csv" as line
    MERGE (n:Node{name:line.Source})
    MERGE (m:Node{name:line.Target})
    MERGE (n)-[:TO{distance:line.dist}]->(m)

但是- Neo4j 无论如何都不允许您从文件系统上的任意位置加载文件作为安全预防措施。 相反,您应该将要导入的文件移动到数据库下的import文件夹中。 如果您使用的是 Neo4j 桌面,您可以通过选择您的数据库项目并单击“打开文件夹”上的小向下箭头图标,从列表中选择“导入”来找到它。

在此处输入图像描述

将 CSV 放在那里,然后在文件空间中使用它的文件名。 例如:

LOAD CSV WITH HEADERS FROM "file:///test.csv" as line
    MERGE (n:Node{name:line.Source})
    MERGE (m:Node{name:line.Target})
    MERGE (n)-[:TO{distance:line.dist}]->(m)

您仍然可以使用import目录下的文件夹 - 任何以file:///开头的内容都将相对于该导入文件夹进行解析,因此以下内容也可以:

LOAD CSV WITH HEADERS FROM "file:///neo4j_module_datasets/test.csv" as line
    MERGE (n:Node{name:line.Source})
    MERGE (m:Node{name:line.Target})
    MERGE (n)-[:TO{distance:line.dist}]->(m)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM