gpt4 book ai didi

csv - cypher - 加载多个 csv 文件

转载 作者:行者123 更新时间:2023-12-04 15:59:47 25 4
gpt4 key购买 nike

我有很多带有名称的 csv 文件 0_0.csv , 0_1.csv , 0_2.csv , ... , 1_0.csv , 1_1.csv , ... , z_17.csv .

我想知道如何在循环中导入它们?

我也想知道我做得好吗? (每个文件为 50MB,整个文件大小约为 100GB)

这是我的代码:

create index on :name(v)
create index on :value(v)

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///0_0.txt" AS csv
FIELDTERMINATOR ','
MERGE (n:name {v:csv.name})
MERGE (m:value {v:csv.value})
CREATE (n)-[:kind {v:csv.kind}]->(m)

最佳答案

您可以通过构造文件名来处理多个文件。不幸的是,这在使用 USING PERIODIC COMMIT 时似乎会中断。查询提示,因此它对您来说不是一个好选择。您可以创建一个脚本来包装它并将命令发送到 bin/cypher-shell尽管。

UNWIND ['0','1','z'] as outer
UNWIND range(0,17) as inner
LOAD CSV WITH HEADERS FROM 'file:///'+ outer +'_' + toString(inner) + '.csv' AS csv
FIELDTERMINATOR ','
MERGE (n:name {v:csv.name})
MERGE (m:value {v:csv.value})
CREATE (n)-[:kind {v:csv.kind}]->(m)

就您的实际负载查询而言。你吗 namevalue节点在文件中多次出现?如果它们是唯一的,最好分多次加载数据。首先加载没有索引的节点;然后在加载节点后添加索引;然后将关系作为最后一步。

使用 CREATE:kind即使 csv.kind 的值相同,relationship 也会导致多个关系。 .您可能想使用 MERGE相反,如果是这样的话。

对于 100 GB 的数据,如果您从一个空数据库开始并且正在寻找速度,我会考虑使用 bin/neo4j-admin import .

关于csv - cypher - 加载多个 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44870298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com