数据导入从CSV文件中导入

举报
xcc-2022 发表于 2022/08/07 21:16:48 2022/08/07
【摘要】 csv文件导入neo4j、数据批量导入一、数据准备阶段1.创建文件夹2.导入neo4j数据格式2.1 结点类型2.2 关系类型2.3.csv文件转换二、数据导入阶段Import文件夹导入的代码语句大功告成三、一些问题导入neo4j后乱码问题Unable to parse headerneo4j数据的csv导出与备份参见我的另一篇博客: https://blog.csdn.net/weixin...


neo4j数据的csv导出与备份参见我的另一篇博客: https://blog.csdn.net/weixin_44078713/article/details/107058364


一、数据准备阶段

1.创建文件夹

首先进入neo4j文件夹,看一下是否有import这个文件夹,没有的话就新建一个。在这里插入图片描述

2.导入neo4j数据格式

2.1 结点类型

csv文件需要指定一个唯一标识id,如果需要标签的话用 :LABEL。第一行的其他表头即为节点属性值,第一行使用英文会更好,不然指不定后面会报错。
标签这一列除表头的冒号可以省略,例如下表中:Category可以简化为Category
在这里插入图片描述

2.2 关系类型

关系类型的csv文件至少需要三列,即起止结点、关系的名称,当然,同2.2中所说,其他列也可以增加关系的属性值。
tip:起止id需要在其他csv文件中定义过且为 :id类型,如下图中我的ENDID为1,代表指向上表中的管理这个节点的一条名为一级序列的关系。(这里应该可以理解吧,要想好自己要建立的一些关系和结点的逻辑关系再下手)
在这里插入图片描述

2.3.csv文件转换

如果使用excel创建的表格,如下图另存为csv格式即可。在这里插入图片描述

二、数据导入阶段

Import文件夹

将自己所有的结点和关系类型csv文件放入刚刚创建的import文件夹。
在这里插入图片描述

导入的代码语句

导入时需要保证neo4j是停止运行状态,wn+r进入命令行,cd进入neo4j的bin目录即可输入。
--mode=csv指定导入格式,--database company_outbound.db是这些数据导入的数据库名称,graph.db已经生成,Neo4j导入数据只能在一个数据库中,所以新建了一个数据库,后面改为graph.db即可导入图谱,--nodes:Category 告诉我们这个文件是节点文件且指定了标签,如果多个结点文件可以再来一次--nodes,关系类型也是一样。后面的一些语句是容错处理。

neo4j-admin import --mode=csv --database company_outbound.db --nodes:Category “F:\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\import\profession.csv” --relationships “F:\neo4j-community-3.5.5-windows\neo4j-community-3.5.5\import\shuyu_to_biaozhun.csv” --ignore-extra-columns=true --ignore-missing-nodes=true --ignore-duplicate-nodes=true

大功告成

看到这样的界面就是成功啦!
在这里插入图片描述
在这里插入图片描述
导入之后查看自己的以下路径是否生成company_outbound.db文件,删除原来的graph.db文件夹并把现在生成的这个更名为graph.db
在这里插入图片描述
完成之后运行neo4j就可以看到自己的图谱啦。

三、一些问题

导入neo4j后乱码问题

有同学导入neo4j后发现一些英文名称是可以显示的,但是中文的就是一堆乱码,什么原因呢?是因为我们excel另存为之后默认是ANSI格式,需要手动调成utf8编码,如果电脑上没有安装notepad++的同学可以直接使用记事本来转换。
首先用记事本打开,右下角可以看到编码方式,文件-另存为-修改编码方式utf8即可。
在这里插入图片描述
在这里插入图片描述
tip:我的电脑上csv转换为uft8格式后直接用excel打开就是乱码的,如果后面需要改动的话可以再转化成ANSI用excel修改。

Unable to parse header

有时导入后台报错Unable to parse header,这是因为无法解析表头引起的,推荐一下排查思路:
①保证每个文件中的id是唯一的一个id,互不重复。
②关系文件中各个表头的名字应该与对应节点名称完全一样,不要多空格多符号等,后来我是直接复制过去解决的。
③lable和type的形式应该对应相等,不要一个文件是是中文的冒号一个文件是英文的冒号。:LABEL :LABEL是不一样的,要统一。我的文件中除了LABLE是统一用中文冒号,其他像ID,TYPE都是用的英文冒号。

好啦,今这篇文章就写到这儿,一些坑和经验都记录下来了,防止自己和别的同学踩坑,希望大家的探索之路更加顺利~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。