精华 neo4j 使用 load csv 命令导入csv数据,并生成节点、关系
发布于 4 年前 作者 pangguoming 12004 次浏览 来自 分享

采用load 形式导入csv

本文使用的是windows下的neo4j browser,在导入数据之前,需要将EXCEL另存为CSV,如果有多个sheet,则需要分开单独存储

USING PERIODIC COMMIT 300 LOAD CSV WITH HEADERS FROM “file:///test.csv” AS line
 MERGE (a:actors{name:line.name,type:line.type,id:line.id})

本地数据文件放在XXX\Neo4j\graph.db\import文件夹内,远程数据文件可以使用文件URL

在这里本人就是在import文件夹里放了一个actors.csv 文件,然后指定file:///actors.csv 即可访问该文件

可变参数解释:

1、USING PERIODIC COMMIT 300

使用自动提交,每满300条提交一次,防止内存溢出 2、WITH HEADERS

从文件中读取第一行作为参数名,只有在使用了该参数后,才可以使用line.name这样的表示方式,否则需使用line[0]的表示方式 3、AS line

为每行数据重命名

4、MERGE

用merge比用create好一点,可以防止数据重复 上面的语句可修改为如下(我用的是下面的)

 USING PERIODIC COMMIT 10
LOAD CSV FROM "file:///actors.csv" AS line
create (a:actors{personId:line[0],name:line[1],type:line[2]})

actors.csv 文件位于neo4j 的import 文件目录下。 image.png 导入成功后的结果: image.png 继续导入:

 USING PERIODIC COMMIT 10
LOAD CSV FROM "file:///movies.csv" AS line
create (a:movies{movieId:line[0],name1:line[1],year:line[2],tag:line[3]})

image.png 查询

MATCH(m:movies) return m

image.png 接下来导入关系 image.png

USING PERIODIC COMMIT 10
 LOAD CSV FROM “file:///roles.csv” AS line
 MATCH (from:movies{movieId:line[2]}),(to:actors{personId:line[0]})
 merge (from)-[r:ACTED_IN{miles:line[1]}]-> (to)
 return r
 
 MATCH p=()-[r:ACTED_IN]->() RETURN p LIMIT 25

用于测试,忽略效果,注意语法与细节

image.pngimage.png 可能遇到的问题:

1、导入后中文乱码

因为neo4j是utf-8的,而CSV默认保存是ANSI的,需要用记事本另存为成UTF-8的

2、如何导入关系

在neo4j中,虽然有一个自增的id属性,但是要想使用它还是很麻烦的,尤其是在web管理端

因此在使用CSV创建关系时,需要我们自己指定或添加一个属性来作为“主键”,在创建关系时根据该属性来获取节点,并添加关系

USING PERIODIC COMMIT 10
 LOAD CSV FROM “file:///test.csv” AS line
 match (from:actors{persionid:line[0]),(to:position{id:[1]})
 merge (from)-[r:fly{miles:line[2],time:line[3],price:line[4]}]-(to)
 return r

参考文献 https://blog.csdn.net/zfqbd/article/details/78808678 按照此链接数据生成了,把neo4j关闭了.删除graph.db仍然失败。 先整理出一些收集的资料,稍后整理 https://blog.csdn.net/alantuling_jt/article/details/58181556 https://blog.csdn.net/macanv/article/details/78296066 https://blog.csdn.net/ilasjdklfj/article/details/79118461 https://blog.csdn.net/xingxiupaioxue/article/details/71747284 https://blog.csdn.net/qq_23318779/article/details/66970960

回到顶部