Neo4j导入CSV数据

常见导入形式对比。

在这里插入图片描述

Load方式导入CSV文件数据:

首先将本地数据文件放在XXX\Neo4j\import文件夹内,远程数据文件可以使用文件URL。
这里本人在import文件夹里放了三个文件,然后指定绝对路径即可访问该文件
在这里插入图片描述
其中person.csv为人物表,movies.csv为电影表,rating.csv为每个人给电影的打分表。
由此可见,person和movies均为点,而rating则为边。

下面开始导入person.csv数据:

在这里插入图片描述
在这里插入图片描述
在页面执行下列的命令:

USING PERIODIC COMMIT 10
LOAD CSV WITH HEADERS  FROM "file:////disk3/neo4j-community-3.5.15/import/person.csv" AS line
MERGE (p:Person{pid:toInteger(line.pid)})

参数说明:

1、USING PERIODIC COMMIT 300
使用自动提交,每满300条提交一次,防止内存溢出

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

3、AS line
为每行数据重命名

4、MERGE
用merge比用create好一点,可以防止数据重复

person.csv导入成功:
在这里插入图片描述

下面继续导入movies.csv数据:

在这里插入图片描述

LOAD CSV WITH HEADERS  FROM "file:////disk3/neo4j-community-3.5.15/import/movies.csv" AS line
MERGE (m:Movies{movieId:toInteger(line.movieId),title:line.title,genres:line.genres})

movies.csv文件导入成功:
在这里插入图片描述

下面开始导入rating.csv数据:

在这里插入图片描述
执行以下命令:

LOAD CSV WITH HEADERS FROM "file:////disk3/neo4j-community-3.5.15/import/rating.csv" AS line 
match (from:Person{pid:toInteger(line.pid)}),(to:Movies{movieId:toInteger(line.movieId)})  
merge (from)-[r:rate{pid:toInteger(line.pid),movieId:toInteger(line.movieId),rating:toInteger(line.rating)}]->(to)

导入rating.csv数据成功:
在这里插入图片描述

import方式导入CSV数据:

此方法,需先停止neo4j服务:

./neo4j stop
导入数据:

本例中用到的数据分别有节点文件movies、person和关系文件rating,创建三个csv文件,分别命名为movies.csv、person.csv、rating.csv,并将数据填入其中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将要导入的三个csv文件放入了import目录当中:
在这里插入图片描述
进入到安装bin目录执行以下命令:

neo4j-admin import --id-type=STRING --mode=csv --database=userMovie.db --nodes /disk3/neo4j-community-3.5.15/import/person.csv --nodes /disk3/neo4j-community-3.5.15/import/movies.csv --relationships /disk3/neo4j-community-3.5.15/import/rating.csv

代码的意思是以csv的文件模式,将import文件夹下的movies节点,person节点,rating.csv关系导入到名为userMovie的数据库中(这个数据库名字可以自己定义),回车一下。在这里插入图片描述
导入之后并不是大功告成了,还要在浏览器中访问这个数据库看一下导入的结果,这时候就面临一个很大的问题,neo4j默认的数据库是data/databases下面的graph.db,浏览器也会默认的访问这个graph数据库,所以当你新建了一个数据库的时候,就需要去修改配置文件:

vim conf/neo4j.conf

将dbms.active_database = graph.db 修改为 dbms.active_database = 你的数据库名称.db,并且!!将前面的井号删除掉,有井号表示并不执行,是默认设置,修改之后别忘记保存哦!!
在这里插入图片描述
然后切换到bin目录下,重新启动。

发布了68 篇原创文章 · 获赞 4 · 访问量 7363

猜你喜欢

转载自blog.csdn.net/weixin_44455388/article/details/104534904
今日推荐