Java Neo4j导入工具出错

Java Neo4j导入工具出错,java,csv,import,neo4j,Java,Csv,Import,Neo4j,我正在尝试使用2.2.0版本的导入工具从CSV导入数据。 我一直在messages.log文件中遇到此错误: 2015-02-10 16:14:44.792+0000 INFO [org.neo4j]: Import starting 2015-02-10 16:14:45.032+0000 INFO [org.neo4j]: Creating new db @ C:\path\to\file\Neo4j\test.graphdb\neostore 2015-02-10 16:14:47.7

我正在尝试使用2.2.0版本的导入工具从CSV导入数据。 我一直在messages.log文件中遇到此错误:

2015-02-10 16:14:44.792+0000 INFO  [org.neo4j]: Import starting
2015-02-10 16:14:45.032+0000 INFO  [org.neo4j]: Creating new db @ C:\path\to\file\Neo4j\test.graphdb\neostore
2015-02-10 16:14:47.727+0000 ERROR [org.neo4j]: Error during import Missing header of type START_ID
java.lang.RuntimeException: Missing header of type START_ID
    at org.neo4j.unsafe.impl.batchimport.staging.StageExecution.stillExecuting(StageExecution.java:61)
    at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisor.anyStillExecuting(ExecutionSupervisor.java:70)
    at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisor.finishAwareSleep(ExecutionSupervisor.java:93)
    at org.neo4j.unsafe.impl.batchimport.staging.ExecutionSupervisor.supervise(ExecutionSupervisor.java:55)
    at org.neo4j.unsafe.impl.batchimport.ParallelBatchImporter.executeStages(ParallelBatchImporter.java:263)
    at org.neo4j.unsafe.impl.batchimport.ParallelBatchImporter.doImport(ParallelBatchImporter.java:153)
    at org.neo4j.tooling.ImportTool.main(ImportTool.java:213)
Caused by: org.neo4j.unsafe.impl.batchimport.input.MissingHeaderException: Missing header of type START_ID
    at org.neo4j.unsafe.impl.batchimport.input.csv.DataFactories$AbstractDefaultFileHeaderParser.validateHeader(DataFactories.java:366)
    at org.neo4j.unsafe.impl.batchimport.input.csv.DataFactories$AbstractDefaultFileHeaderParser.create(DataFactories.java:315)
    at org.neo4j.unsafe.impl.batchimport.input.csv.InputGroupsDeserializer.createNestedIterator(InputGroupsDeserializer.java:65)
    at org.neo4j.unsafe.impl.batchimport.input.csv.InputGroupsDeserializer.createNestedIterator(InputGroupsDeserializer.java:35)
    at org.neo4j.helpers.collection.NestingIterator.fetchNextOrNull(NestingIterator.java:67)
    at org.neo4j.helpers.collection.PrefetchingIterator.peek(PrefetchingIterator.java:60)
    at org.neo4j.helpers.collection.PrefetchingIterator.hasNext(PrefetchingIterator.java:46)
    at org.neo4j.unsafe.impl.batchimport.staging.IteratorBatcherStep.nextOrNull(IteratorBatcherStep.java:41)
    at org.neo4j.unsafe.impl.batchimport.staging.ProducerStep.process(ProducerStep.java:72)
    at org.neo4j.unsafe.impl.batchimport.staging.ProducerStep$1.run(ProducerStep.java:54)
我尝试导入的三个文件的前五行如下所示: loctest.csv

LOCATION:ID;LOC_TYPE:int;NUM_MILE:int;STREET_PRE;STREETNAME;STREETTYPE;STREETSUF;APT_NO;X_STREET;:LABEL
895WTWELFTHST;1;895;W;TWELFTH;ST;;107;;LOCATION
145SFRANKLINST;1;145;S;FRANKLIN;ST;;;;LOCATION
11735GLACIERHWY;1;11735;;GLACIER;HWY;;;;LOCATION
MENDENHALL LOOPUNIVERSITY DRRDUNIVERSITY DR;2;;;MENDENHALL LOOPUNIVERSITY DR;RD;;;UNIVERSITY DR;LOCATION
zip5.csv

ZIP5:ID;ZIP4;:LABEL
99801;;ZIP5
99824;;ZIP5
99821;;ZIP5
99803;;ZIP5
locziptest.csv

:START_ID;CITY;:END_ID;:TYPE
895WTWELFTHST;JUNEAU;99801;CITY
145SFRANKLINST;JUNEAU;99801;CITY
11735GLACIERHWY;JUNEAU;99801;CITY
MENDENHALL LOOPUNIVERSITY DRRDUNIVERSITY DR;JUNEAU;99801;CITY

有问题的文件似乎是关系文件locziptest.csv,但标题似乎配置正确。ID字段中的查找字符串是否存在问题?是否需要完全是数字?

您的csv使用分号作为字段分隔符。neo4j导入默认为逗号,因此请修改neo4j导入调用:


数组分隔符设置是必需的,因为此设置默认为分号,并且两者不能相同。

我尝试了一下,并使用以下参数导入了示例数据:

-进入graph.db -节点loctest.csv -节点zip5.csv -关系locziptest.csv -定界符; -数组分隔符|


请不要在CSV文件中引用分号。我认为讨论是围绕命令提示符中分号的引号展开的,分号也不需要被引用

格式设置看起来像是标题行中的第一个字符是空格-请检查此项。如果这不是问题,请粘贴neo4j导入的确切命令行。@StefanArmburster我不知道为什么,但SO的格式正在添加该空间,我的文件没有该空间。我正在运行的命令是bin\Neo4jImport.bat-into C:\Users\path\to\db-nodes loctest.csv-nodes zip5.csv-relationships locziptest.csvnot sure,但请尝试添加-id类型字符串。@StefanArmburster它仍会引发相同的错误:缺少START\u id类型的标头。它只是没有读取关系文件吗?@StefanArmburster我尝试使用一个只有标头的空关系文件来运行它,但仍然会得到该错误。现在我得到:节点导入错误:无效数字字符-16“?”其中原始字符为“”,您的评论似乎有误。我用Linux试过上面的方法,也许windows命令行需要一些分号的引号。我用的是windows。你是说在节点CSV中,我需要在分号周围加引号?是的,我的直觉是windows命令行正在解释分号,这里。在Linux的bash上,上面的工作很好,图形导入时没有错误。奇怪。现在,更换了所有的,;具有在我的CSV中,我得到导入错误:“ID”我不确定它是否正确执行。由于您的建议,导入现在似乎正在处理数据,但它只是在提示符处显示节点。作为参考,我的文件大约每行100000行。你知道需要多长时间吗?不管它值多少钱,它确实有效,我制作了更小的文件作为测试,一切都正常运行。处理更大的文件只需要一段时间。好吧,如果期望每秒增加几十万到一百万个实体节点或关系,这并不是过分乐观。
--delimiter ";" --array-delimiter ","