cypher-shell执行LOAD CSV语句提示无效分号报错如何解决?
报错原因
你编写的Cypher语句不符合语法规范:LOAD CSV本身只是读取CSV文件的子句,不能作为独立语句单独执行,必须搭配后续操作(比如返回数据、创建节点/关系等)使用,所以语法解析器读到末尾的分号时,没有匹配到预期的后续操作关键字,就抛出了该错误。
另外你使用的官方Neo4j Docker启动命令配置正常,端口映射符合要求,该报错和服务启动配置无关。
解决方案
根据你的使用需求选择对应完整语句即可:
- 仅测试CSV读取、预览前N行数据
示例(预览前5行):
说明:LOAD CSV WITH HEADERS FROM 'https://data.neo4j.com/northwind/customers.csv' AS row RETURN row LIMIT 5;WITH HEADERS参数表示将CSV第一行作为字段名,后续可以直接通过row.字段名的形式读取对应列内容;如果不加该参数,读取到的每一行是数组格式,需要通过row[0]、row[1]下标形式访问对应列。 - 导入CSV内容为Neo4j节点
示例(导入为客户节点):LOAD CSV WITH HEADERS FROM 'https://data.neo4j.com/northwind/customers.csv' AS row CREATE (:Customer { customerId: row.customerID, companyName: row.companyName, contactName: row.contactName, city: row.city, country: row.country }); - 导入超1万行的大体积CSV时,可搭配批次提交参数避免内存溢出
示例(每导入1000行提交一次事务):USING PERIODIC COMMIT 1000 LOAD CSV WITH HEADERS FROM 'https://data.neo4j.com/northwind/customers.csv' AS row CREATE (:Customer { customerId: row.customerID, companyName: row.companyName, contactName: row.contactName, city: row.city, country: row.country });
内容的提问来源于stack exchange,提问作者Jordi
相关产品推荐
相关产品推荐

