csv - neo4j-admin 导入可以跳过存在导入错误的 CSV 行吗?
问题描述
我正在尝试使用neo4j-admin import
CSV 输入数据填充 neo4j 数据库。\"
根据文档,不支持转义引号,但我的输入有这些和其他格式异常。因此neo4j-admin import
输入CSV显然失败
> neo4j-admin import --mode=csv --id-type=INTEGER \
> --high-io=true \
> --ignore-missing-nodes=true \
> --ignore-duplicate-nodes=true \
> --nodes:user="import/headers_users.csv,import/users.csv"
Neo4j version: 3.5.11
Importing the contents of these files into /data/databases/graph.db:
Nodes:
:user
/var/lib/neo4j/import/headers_users.csv
/var/lib/neo4j/import/users.csv
Available resources:
Total machine memory: 15.58 GB
Free machine memory: 598.36 MB
Max heap memory : 17.78 GB
Processors: 8
Configured max memory: -2120992358.00 B
High-IO: true
IMPORT FAILED in 97ms.
Data statistics is not available.
Peak memory usage: 0.00 B
Error in input data
Caused by:ERROR in input
data source: BufferedCharSeeker[source:/var/lib/neo4j/import/users.csv, position:91935, line:866]
in field: company:string:3
for header: [user_id:ID(user), login:string, company:string, created_at:string, type:string, fake:string, deleted:string, long:string, lat:string, country_code:string, state:string, city:string, location:string]
raw field value: yyeshua
original error: At /var/lib/neo4j/import/users.csv @ position 91935 - there's a field starting with a quote and whereas it ends that quote there seems to be characters in that field after that ending quote. That isn't supported. This is what I read: 'Universidad Pedagógica Nacional \"F'
我的问题是是否可以跳过或忽略neo4j-admin import
引发错误的 CSV 文件格式不佳的行。文档中似乎没有这样的选项。我知道存在使用的解决方案,LOAD CSV
并且应该在导入之前对 CSV 进行预处理。注意当我修复格式问题时,我能够成功导入 CSV。
解决方案
或许值得描述一下批量导入器和 LOAD CSV 之间的区别。
LOAD CSV 将您的数据以事务方式加载到数据库中——这意味着您可以获得所有 ACID 优点等。这样做的副作用是它不是加载数据的最快方式。
批量导入器假设数据是数据库就绪格式,您已经处理了重复项,您需要进行任何处理以将其转换为正确的形式等,并且只会按原样提取数据并形成它指定到数据库中。这不是数据的事务性加载,因为它假设正在加载的数据已经“数据库就绪”,所以它确实很快被摄取。
还有其他导入数据的选项,但通常如果您需要在导入时进行某种行跳过/更正,您并不想通过离线批量导入器来执行此操作。我建议您在使用 CSV 之前对 CSV 进行某种形式的预处理neo4j-admin import
,或者查看其他可用的导入选项之一,您可以在其中指定如何处理任何格式不佳的行。
推荐阅读
- netflix-eureka - Netflix Eureka 和 Spring Boot Admin 在一个应用程序中,不显示客户端
- ionic-framework - 无法使用离子幻灯片的选项属性
- keyboard-shortcuts - PlatformIO 的 Atom 覆盖键绑定
- jxbrowser - com.teamdev.jxbrowser.internal.ChromiumExtractorException:无法将 Chromium 二进制文件提取到 x 文件夹中
- android - 我无法从 Play 商店安装我自己的应用程序
- javascript - 如何使用 Cloudinary 小部件获取多个上传文件的数组
- mongodb-query - MongoDB 数组过滤器
- javascript - 如何正确引用类constructor()中声明的数据?
- python - 我们可以使用 python 代码从新闻网站上抓取和下载音频吗?
- html - 如何在容器外显示 UIkit 导航?