0


Neo4j导入csv文件

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 条提交一次,防止内存溢出。
默认值是1000with 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

SemanticError

因此我在命令前面加入了

: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数据库中创建成功如下图所示:

success

参考文章

neo4j–Cypher语法练习(LOAD CSV)

Neo4j:入门基础(二)之导入CSV文件

基于电影知识图谱的智能问答系统(二) – Neo4j导入CSV文件


本文转载自: https://blog.csdn.net/qq_42582489/article/details/125653444
版权归原作者 风云诀4 所有, 如有侵权,请联系我们删除。

“Neo4j导入csv文件”的评论:

还没有评论