具有格式的.csv文件中的数据集
"title"|year|"word"
"Into the Wild"|2007|"abandoned-bus"
"Into the Wild"|2007|"adolescence"
"Into the Wild"|2007|"adoption"这个文件有超过400万行。
我有数据库运行在远程超级计算机上,我用ssh隧道连接.我创建了两个指数:
CREATE INDEX ON :MOVIE(title)
CREATE INDEX ON :KEYWORD(word)然后执行查询:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:c:/Users/.../Data/rels.csv" AS csv
FIELDTERMINATOR '|'
MERGE (m:MOVIE {title:csv.title })
ON CREATE SET m.year = toInt(csv.year)
MERGE (k:KEYWORD {word:csv.word})经过一段时间后,我不知道一个小时,有关查询执行的信息消失或出现一个未知的错误。但是当我进入localhost:7474/webadmin在统计中时,节点数的增长非常缓慢--大约10秒内有5-8个节点。
执行查询时:(我可以,因为没有显示正在运行的查询)
match (m)
return count(m)大约有79K个节点。但数量正在增加超过21小时。我需要创建大约120万个节点,而不是在它们之间建立大约400万个关系。当我进行基本计算时,创建120万个节点将持续大约13天。我真的不想知道,要建立400万的恋爱关系会持续多久。
发生了什么事?怎么系好呢?我能做什么?,请帮忙。
注:
过去,我已经创建了电影和关键字的节点,它是从只包含电影或关键字的单独csv文件中创建的,没有使用定期提交,但手动选择了大约60K行并对其执行查询。但我删除了它们,使它在两个查询中,也与关系,没有工作的划分csv文件。无法想象手动将4M行文件划分为60K行文件。
发布于 2015-03-12 08:12:15
我稍微改变了一下程序。
USING PERIODIC COMMIT 1000 LOAD CSV WITH HEADERS FROM 'file:c:/.../kw.csv' as csv CREATE (:KEYWORD {word:csv.word})USING PERIODIC COMMIT 1000 LOAD CSV WITH HEADERS FROM 'file:c:/.../mov.csv' as csv CREATE (:MOVIE {title:csv.title, year: toInt(csv.year)})CREATE INDEX ON :MOVIE(title) CREATE INDEX ON :MOVIE(year) CREATE INDEX ON :KEYWORD(word)USING PERIODIC COMMIT 1000 LOAD CSV WITH HEADERS FROM 'file:c:/.../rels.csv' as csv MATCH (m:MOVIE {title:csv.title, year: toInt(csv.year)}) MATCH (k:KEYWORD {word:csv.word}) MERGE (m)-[:HAS {weight:1}]->(k)希望这能对将来的人有所帮助。
https://stackoverflow.com/questions/28981964
复制相似问题