在neo4j中只加载来自大型csv文件的少量样本

时间:2017-08-22 05:03:37

标签: neo4j cypher

我是neo4j db的新手。我有一个很大的csv文件,无法放入我机器的内存中。在使用USING PERIODIC COMMIT在db中加载所有记录之前,我想在小数据样本上测试我的cypher查询。如何加载仅1000行数据并测试我的查询。

数据的列格简洁为[Employee, CompanyName]。我想创建(:Employee)-[:Employed]->(:Company)的关系。 Employee和CompanyName节点已加载到数据库中。

3 个答案:

答案 0 :(得分:2)

您可以限制要导入的行:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS 'file:///yourcsvfile.csv' AS row
WITH row LIMIT 1000
...

然后继续使用您通常的导入Cypher语句。这将只读取文件的前1000行。

答案 1 :(得分:1)

只需使用文件的前1000行创建一个csv文件(然后使用它)。 在Linux / Unix上:

head -1000 yourinputfile.csv > output1000.csv

在Windows(powershell)上:

Get-Content "yourinputfile.csv" | select -First 1000 | Out-File "output1000.csv"

希望这有帮助。

此致 汤姆

答案 2 :(得分:0)

如果 CSV 数据集记录少于 1000 万条,则使用 LOAD CSV 方法,否则使用批量上传方法。

加载和读取 CSV 的优化代码之一是:

:auto USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:///file_name.csv' AS row
WITH row LIMIT 10000

这个查询首先在内存中加载 1000 条记录,执行它,然后再加载一组另外 1000 条记录,直到 100,00 条记录。

注意:确保将 file_name.csv 放在导入文件夹中。

enter image description here