2014-08-27 64 views
0

我上传一个100MB的csv文件到neo4j包含交易数据。我得到一个java错误,我似乎无法追溯到一个设置或我可以改变的东西。neo4j上传csv UnmarshalException

neo4j-sh (?)$ CREATE CONSTRAINT ON (a:Account) ASSERT a.id IS UNIQUE; 
+-------------------+ 
| No data returned. | 
+-------------------+ 
Constraints added: 1 
48 ms 
neo4j-sh (?)$ USING PERIODIC COMMIT 
> LOAD CSV FROM 
> "file:/somepath/findata.csv" 
> AS line 
> FIELDTERMINATOR ',' 
> MERGE (a1:Account { id: toString(line[3]) }) 
> MERGE (a2:Account { id: toString(line[4]) }) 
> CREATE (a1)-[:LINK { value: toFloat(line[0]), date: line[5] } ]->(a2); 
java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: 
    java.io.EOFException 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:228) 
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) 
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) 
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) 
    at com.sun.proxy.$Proxy1.interpretLine(Unknown Source) 
    at org.neo4j.shell.impl.AbstractClient.evaluate(AbstractClient.java:110) 
    at org.neo4j.shell.impl.AbstractClient.evaluate(AbstractClient.java:94) 
    at org.neo4j.shell.impl.AbstractClient.grabPrompt(AbstractClient.java:74) 
    at org.neo4j.shell.StartClient.grabPromptOrJustExecuteCommand(StartClient.java:357) 
    at org.neo4j.shell.StartClient.startRemote(StartClient.java:303) 
    at org.neo4j.shell.StartClient.start(StartClient.java:175) 
    at org.neo4j.shell.StartClient.main(StartClient.java:120) 
Caused by: java.io.EOFException 
    at java.io.DataInputStream.readByte(DataInputStream.java:267) 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:214) 
    ... 11 more 

我试过两次这个命令,它给了我同样的错误。 Sofar谷歌并没有帮助我找出我能做些什么来规避这个错误。 neo4j中发生了什么,我该如何解决这个问题?

+0

我已经看到了这个用大量数据的时候,试着将你的CSV成几部分 – 2016-12-16 16:48:28

回答

0

也许这不是问题,但是您的CSV文件路径可能不正确。这将解释java.rmi.UnmarshalException。路径应该是'file://',在linux系统上,'/home/cantdutchthis/findata.csv'就是这样的。在Linux或Mac机器上,这意味着将会有3'/' - 'file:///home/cantdutchthis/findata.csv'。

恩惠,平安,

吉姆

+0

我已经使用上的文件相同的语法,并已能够确认语法是否正确。当我将文件减少到只有十行代码时也是如此。我现在假设数据可能有问题。可能是'''toFloat''部分。 – cantdutchthis 2014-08-28 07:58:29