2014-08-27 62 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