我正在尝试加载大小约为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中一样,我尝试在json中使用USING PERIODIC COMMIT 1000。但是我不允许使用加载json。
如何批量加载json数据?
发布于 2018-12-13 05:34:14
您还可以使用jq将JSON转换为CSV文件,jq是一种超快的json转换器。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")最近,我对大约700 of的JSON文件执行了此操作。将csv文件转换为正确的格式需要一些考虑,但如果您遵循jq上的教程,您将学会如何做到这一点。此外,请查看标题需要设置的内容以及此处不需要设置的内容:https://neo4j.com/docs/operations-manual/current/tools/import/
它花了大约一天的时间来转换所有这些文件,但考虑到使用apoc的事务开销,以及一旦文件转换成格式就可以随时重新导入的能力,从长远来看,这是值得的。
发布于 2017-04-14 08:32:39
apoc.load.json现在支持将json-path作为第二个参数。
要从文件中的数组中获取前1000个JSON对象,请尝试执行以下操作:
WITH "file:///path_to_file.json" as url
CALL apoc.load.json(url, '[0:1000]') YIELD value AS article
RETURN article;[0:1000]语法指定了数组索引的范围,并且第二个数字是独占的(因此,在本例中,该范围中的最后一个索引是999)。
以上功能至少可以在neo4j 3.1.3 (使用apoc release 3.1.3.6)中工作。还要注意的是,桌面版的neo4j (通过Windows和OSX安装程序安装)有一个new requirement,关于在哪里放置像apoc这样的插件以便导入本地文件。
https://stackoverflow.com/questions/43385030
复制相似问题