neo4j - 将批量json数据导入neo4j

标签 neo4j cypher

我正在尝试加载大小约为 700k 的 json 文件。但它向我显示堆内存空间不足错误。

我的查询如下:

WITH "file:///Users//arundhathi.d//Documents//Neo4j//default.graphdb//import//tjson.json" as url  
call apoc.load.json(url) yield value as article return article

就像在 csv 中一样,我尝试将 USING PERIODIC COMMIT 1000 与 json 一起使用。但我不允许使用加载json。

如何加载批量json数据?

最佳答案

您还可以使用 jq(一个 super 快速的 json 转换器)将 JSON 转换为 CSV 文件。 https://stedolan.github.io/jq/tutorial/

这是根据:https://neo4j.com/blog/bulk-data-import-neo4j-3-0/ 推荐的方式

如果你有很多文件,请编写一个 python 程序或类似的程序来遍历文件的长度,调用:

os.system("cat file{}.json | jq '. [.entity1, .entity2, .entity3] | @csv' >> concatenatedCSV.csv".format(num))

或者在 Go 中:

exec.Command("cat file"+num+".json | jq '. [.entity1, .entity2, .entity3] | @csv' >> concatenatedCSV.csv")

我最近对大约 700GB 的 JSON 文件执行了此操作。获取正确格式的 csv 文件需要一些思考,但如果您按照 jq 上的教程进行操作,您就会了解如何做到这一点。此外,请检查 header 需要如何以及不应该如何:https://neo4j.com/docs/operations-manual/current/tools/import/

全部转换大约需要一天的时间,但考虑到使用 apoc 的事务开销,以及一旦文件采用格式即可随时重新导入的能力,从长远来看,这是值得的。

关于neo4j - 将批量json数据导入neo4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43385030/

相关文章:

java neo4j 密码查询来匹配节点

Neo4j - 使用 UNWIND 和 MERGE 进行嵌套集合,出现错误 : Property values can only be of primitive types or arrays thereof

scala - Neo4j - Cypher 与 Scala-Neo4j API

neo4j - 如何修复neo4j中创建节点索引错误?

java - Neo4j:删除2个节点之间的关系 Neo.ClientError.Statement.SyntaxError

neo4j - 在 Cypher 中按相关实体重建图

Neo4j Cypher 查询和复合对象

neo4j - Neo4j Community 2.3.2 上的回滚/撤消?

java - spring data neo4j 4.2.0.RELEASE自定义查询问题

neo4j - 在 Cypher WHERE 过滤子句中使用 neo4j 自动索引