我正在尝试加载大小约为 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/