我一直在尝试导入3个不同的CSV文件,而第三个文件包含3M数据。文件1和文件2之间的关系创建成功,因为没有太多数据。但是创建文件2和文件3之间的关系并不成功。数据结构如下。
文件1 :(具有2个标头)例如的数据示例
HEADER1,HEADER2
'A','B'
File2:HEADER2中(在File1和File2之间共有)的(具有两个标头)值
HEADER2,HEADER3
'B','C'
File3:Header3中的(具有4个标头)值在file2和file3之间通用 该文件具有3M值
HEADER3,HEADER4,HEADER5,HEADER6
'C','D','E','F'
我想按如下方式在节点之间创建关系:如果一个:file1
节点具有一个HEADER2
属性,该属性等于一个:file2
节点的HEADER2
属性,那么一个关系应该在这些节点之间创建。并且应该使用其:file2
属性在:file3
/ HEADER3
节点之间类似地创建关系。
我正在使用以下代码加载数据,但是JVM内存不足,因为创建关系的次数非常多:
USING PERIODIC COMMIT 50000
LOAD CSV WITH HEADERS FROM "file:///D:/file3.csv" as csvline
MATCH (file2:file2 {HEADER3: csvline.HEADER3})
create (file3:file3 {HEADER3: csvline.HEADER3, HEADER4: toString(csvline.HEADER4), HEADER5: toString(csvline.HEADER5), HEADER6: csvline.HEADER6})
CREATE (file2)-[:HAS_SERVICE]->(file3)
浏览器上的JVM内存不足,并显示“超出gc开销限制”错误。 任何有关如何在文件1,文件2和文件3之间建立关系的指针(其中有数百万行的行)将很有帮助!