Meine Frage ist sehr ähnlich wie diese: How to create unique nodes and relationships by csv file imported in neo4j? ich mit rund 2,5 Millionen Zeilen eine Textdatei, die zwei Spalten, die jeweils ein Wesen Knoten ids:Erstellen von eindeutigen Knoten und Beziehung Neo4j über riesige Datenmenge
1234 345
1234 568
345 984
... ...
Jede Zeile repräsentiert eine Beziehung (also 2,5 Millionen Beziehungen): first_column nodeid-> FOLLOWS -> second_column nodeid. In dieser Datei befinden sich etwa 80.000 eindeutige Knoten.
Basierend auf den obigen Link, ich habe:
USING PERIODIC COMMIT 1000
LOAD CSV FROM 'file:///home/user_name/Desktop/bigfile.csv' AS line FIELDTERMINATOR ' '
MERGE (n:Userid { id: toInt(line[0]) })
WITH line, n
MERGE (m:Userid { id: toInt(line[1]) })
WITH m,n
MERGE (n)-[:FOLLOWS]->(m)
ich diesen Code
- schafft Knoten n oder m gehe davon aus, wenn es nicht existiert (und findet es, wenn es vorhanden ist) und erstellt eine Beziehung von n zu m.
- Wenn n oder m vorhanden ist und schon viele andere Kanten (Beziehungen), der auf und von anderen Knoten hat, diese von n bis m einem andere Kante nur hinzufügen würde (nicht einen völlig neuen Knoten erstellen, wenn es bereits vorhanden ist)
Meine Hauptfrage ist, ich frage mich, wie man diesen Prozess schneller machen kann. Dies wird auf Ubuntu getan, und ich änderte die Werte von 512 bis 2048 MB für Speicher in der conf/Neo4j-wrapper.conf Datei. (Maximal kann ich meine Virtual Machine erhöhen)
Sollte ich das Import-Tool versuchen zu tun? auf dieser Website basierend auf dem Beispiel, neo4j.com/developer/guide-import-csv/ unter „Super Fast Batch Importeur für große Datenmengen“,
./bin/neo4j-import --into mydatabase.db --id-type INTEGER \
--nodes allnodes.csv \
--delimiter " " \
--relationships:FOLLOWS bigfile.csv
Und dies zu tun, muß ich Dateien neu zu formatieren, so dass : allnodes.csv zeigt
userID:ID(Userid)
1234
5678
...
Und bigfile.csv zeigt
:START_ID(Userid) :END_ID(Userid)
1234 345
1234 568
345 984
*Two columns delimited by space*
Und wenn ich diesen Import ausführen, bekomme ich diesen Fehler:
Input error: Expected '--nodes' to have at least 1 valid item, but had 0 []
Caused by:Expected '--nodes' to have at least 1 valid item, but had 0 []
java.lang.IllegalArgumentException: Expected '--nodes' to have at least 1 valid item, but had 0 []
Wie behebe ich diesen Fehler? Und für die CSV-Dateien, lege ich sie in den gleichen Ordner, wo ich diesen Befehl (Neo4j-Ordner) ausführen?
Yep, dass das Problem behoben. Vielen Dank! – Tony
Bitte denken Sie daran, [Accept] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) die Antwort, die für Sie am besten funktioniert. – cybersam