精华 neo4j-load-csv
发布于 3 个月前 作者 wkq278276130 513 次浏览 最后一次编辑是 23 天前 来自 分享

本文转自 http://weikeqin.cn/2017/04/11/neo4j-load-csv/

注意:

  1. csv一定要用 UTF-8无BOM编码,否则入库时可能乱码
  2. 默认使用;作为分隔符
  3. 导入数据前,一定要校验数据,都是坑呀,总结出的经验
  4. 建议使用绝对路径

导入数据

LOAD CSV FROM "http://data.neo4j.com/examples/person.csv" AS line
fieldterminator '\t'
MERGE (n:Person {id: toInt(line[0])})
SET n.name = line[1]
RETURN n

实际操作例子

导入数据只需要最后一步,但如果不进行数据校验,导入数据一般都会出问题,所以导入数据前都要校验数据,具体步骤如下

检查csv一共多少行

load csv from "file:/Test.csv" as line return count(*);
load csv from "file:///C:/User/wdb/2017-04-06_test.csv" as line return count(*);

检查数据 带标题

注意:注意路径 使用UTF-8编码,否则可能导致乱码

load csv with headers from "file:///C:/User/wdb/Test.csv" as line with line return line limit 5;

真正导入数据的一步

using periodic commit 1000 load csv with headers from "file:///C:/User/wdb/Test.csv" as line create (:Person {name:line.姓名, number:toInt(line.序号), tel:toInt(line.联系方式), sex:line.性别, class:line.班级}) ;

在load csv前面加 USING PERIODIC COMMIT (number) ,number代表的是每多少行进行一次事务提交,比如可以 USING PERIODIC COMMIT 1000。

5 回复

load csv from “file:/Test.csv” as line return count(); 应该加个 * load csv from “file:/Test.csv” as line return count(*);

@bingwork 谢谢指教,是markdown格式的问题,已经修改。

回到顶部