Neo4j导入csv文件
前言
Neo4j 数据库可以使用 load csv
命令从 CSV 文件中导入数据。
load csv 命令可以帮助我们导入中小型的数据,理论上大概能处理到一千万条记录。
其中,CSV文件推荐是使用 UTF-8
编码,不然就会造成中文乱码的糟糕情况。
文件访问
Neo4j的配置文件是 conf 文件夹下的 neo4j.conf 文件,里面有一句默认代码:
dbms.directories.import=import
这句代码指定了 Neo4j 中默认访问文件的相对位置,即 <Neo4j_Home> 路径下的 import 文件夹。
我们把准备访问的文件拷贝在 import 文件夹中,然后就可以使用相对路径 file:///
即可访问 import 下的文件。
例如,我们把文件 test.csv 放入 import 之后,它的绝对路径是 “D:\neo4j-community-3.5.34\import\test.csv” ,我们在命令行中使用相对路径 “file:///test.csv” 即可访问到该文件。
明白了原理,如果我们要把文件的访问位置改成别的文件夹,只需要更改这句代码,去新建对应的文件夹,拷贝文件即可。
//改为Neo4j下的 hhh 文件夹
dbms.directories.import=hhh
这里有一个注意事项,Neo4j数据库考虑了安全性的问题,在使用这句代码指定了文件的访问位置之后,数据库不允许访问该位置之外的其他文件。
常用参数
参数 | 名称 | 用途 |
---|---|---|
using periodic commit [n] | 批量提交 | 可以设置每满 n 条提交一次,防止内存溢出。 默认值是1000 |
with headers | 读取首行 | 读取文件的第一行作为参数名 不使用此参数,要用 line[0]、line[1] 这样的方式表示 使用此参数,可以使用 line.name 这样的表示方式 |
as line | 重命名 | 为每行数据重命名 |
fieldterminator ‘,’ | 自定义字段定界符 | csv中的分隔符基本都是逗号或分号。 最常用的是逗号, |
如果 CSV 文件读取的数据是 String 类型,我们可以使用字符串转换函数对一些有特定要求的数据进行转换。
例如,通过 toInteger() 函数将 String 类型转换为 Integer 类型。
实际书写
我们新建一个 genre.csv 文件,逐项填入以下数据,将其拷贝在 import 文件夹下,然后我们尝试在命令行导入 genre.csv 文件。
gid,gname
12,冒险
14,奇幻
16,动画
18,剧情
27,恐怖
28,动作
35,喜剧
36,历史
37,西部
53,惊悚
80,犯罪
99,纪录
878,科幻
9648,悬疑
10402,音乐
10749,爱情
10751,家庭
10752,战争
10770,电视电影
不使用 with headers 的写法:
load csv
from 'file:///genre.csv' as line
fieldterminator ','
create (
p:Genre{
gid: toInteger(line[0]),
gname: line[1]
}
)
使用 with headers 的写法:
load csv with headers
from 'file:///genre.csv' as line
fieldterminator ','
create (
p:Genre{
gid: toInteger(line.gid),
gname: line.gname
}
)
Neo4j 3.5版本在使用批量提交时遇到一个错误,系统提示要使用 :auto command
。
因此我在命令前面加入了 :auto
,成功通过
:auto using periodic commit 5
load csv with headers
from 'file:///genre.csv' as line
fieldterminator ','
create (
p:Genre{
gid: toInteger(line.gid),
gname: line.gname
}
)
Neo4j数据库中创建成功如下图所示:
参考文章
neo4j–Cypher语法练习(LOAD CSV)
Neo4j:入门基础(二)之导入CSV文件文章来源:https://www.toymoban.com/news/detail-400202.html
基于电影知识图谱的智能问答系统(二) – Neo4j导入CSV文件文章来源地址https://www.toymoban.com/news/detail-400202.html
到了这里,关于Neo4j导入csv文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!