使用batch importer读取大型节点和关系文件时,我一直遇到NotFoundException。我之前使用更大的数据集成功使用了导入器,但我已经重写了生成这两个文件的方式,并且我试图找出它为什么会抛出错误。
问题
它似乎读取了节点文件,然后在rels文件的开头附近抛出一个错误,声明它找不到节点。我相信这是因为它还没有真正导入所有节点。它报告只导入nodes.tsv中的一半节点(总共4.6米的2.1米)。
我检查过的事情:
插入命令:
./import.sh wiki.db nodes.tsv rels.tsv
错误消息
Using Existing Configuration File
.....................
Importing 2129648 Nodes took 6400 seconds
Total import time: 6404 seconds
Exception in thread "main" org.neo4j.graphdb.NotFoundException: id=3608148
at org.neo4j.unsafe.batchinsert.BatchInserterImpl.getNodeRecord(BatchInserterImpl
.java:1215)
at org.neo4j.unsafe.batchinsert.BatchInserterImpl.createRelationship(BatchInserte
rImpl.java:777)
at org.neo4j.batchimport.Importer.importRelationships(Importer.java:154)
at org.neo4j.batchimport.Importer.doImport(Importer.java:232)
at org.neo4j.batchimport.Importer.main(Importer.java:83)
文件
nodes.tsv(4578730行)
node name l:label degrees
0 Stroud_railway_station Page 21
1 ATP–ADP_translocase Page 38
2 Pedro_Hernández_Martínez Page 12
3 Christopher_Lowther Page 4
4 Cloncurry_River Page 10
5 Neil_Kinnock Page 147
6 Free_agent_(business) Page 10
7 Christian_Hilt Page 27
8 2009_Riviera_di_Rimini_Challenger Page 27
rels.tsv(113322480行)
start end type
0 3608148 LINKS_TO
0 870126 LINKS_TO
0 1516248 LINKS_TO
0 3493391 LINKS_TO
0 3034096 LINKS_TO
0 1421544 LINKS_TO
0 2808745 LINKS_TO
0 1872783 LINKS_TO
0 1673612 LINKS_TO
答案 0 :(得分:0)
嗯,您的CSV文件似乎有问题,您是否尝试在其上运行CSVKit或类似内容?
也许您可以通过将nodes.csv一分为二并找到违规行来缩小问题范围?
还可以通过在batch.properties中启用引号来尝试使用opencsv解析器
https://github.com/jexp/batch-import/tree/20#csv-experimental
batch_import.csv.quotes =真
或将其翻转为假。也许你的文字中有两个我们的双引号?如果是,那么请引用它。