Моим вопрос очень похож на этот: How to create unique nodes and relationships by csv file imported in neo4j? У меня есть текстовый файл с около 2,5 миллиона строк, что имеют две колонок, каждые из которых узловых идентификаторов:Создания уникального узла и отношения Neo4j над огромным набором данными
1234 345
1234 568
345 984
... ...
Каждая строка представляет собой отношение (так что 2,5 миллиона отношений): first_column nodeid-> FOLLOWS -> second_column nodeid. В этом файле содержится около 80 000 уникальных узлов.
Основываясь на приведенной выше ссылке, я сделал:
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)
Я предполагаю, что этот код
- создает узел п или т, если он не существует (и находит его, если он существует) и создает связь от n до m.
- Если п или т существует и уже имеет много других краев (отношения), указывающий на и от других узлов, это было бы просто добавить еще один край от п до т (не создавая новый узел, когда он уже существует)
Мой главный вопрос: мне интересно, как сделать этот процесс быстрее. Это делается на Ubuntu, и я изменил значения от 512 до 2048 МБ для памяти в файле conf/neo4j-wrapper.conf. (максимум я могу увеличить на своей виртуальной машине)
Должен ли я попытаться использовать инструмент «Импорт»? на основе, например, на этом сайте, neo4j.com/developer/guide-import-csv/ под «Супер быстрым пакетным импортером для огромного Datasets»,
./bin/neo4j-import --into mydatabase.db --id-type INTEGER \
--nodes allnodes.csv \
--delimiter " " \
--relationships:FOLLOWS bigfile.csv
И сделать это, мне нужно переформатировать файлы, так что : allnodes.csv показывает
userID:ID(Userid)
1234
5678
...
И bigfile.csv показывает
:START_ID(Userid) :END_ID(Userid)
1234 345
1234 568
345 984
*Two columns delimited by space*
И когда я запускаю этот импорт, я получаю эту ошибку:
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 []
Как исправить эту ошибку? А для файлов csv я помещаю их в ту же папку, где я запускаю эту команду (папка neo4j)?
Да, это исправило проблему. Спасибо! – Tony
Пожалуйста, не забывайте [Принять] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ответ, который лучше всего подходит для вас. – cybersam