2014-12-16 2 views
0

Я работаю над использованием Neo4j с py2neo для анализа данных Twitter. Я новичок во всех этих вопросах, поэтому вопрос может быть довольно простым. Но я не мог найти ответ ни в одной из документации. У меня есть два файла csv, один со 100 последователями, другой - около 22000 твитов. Для чириканья у меня есть информация как ответ на другой твит и другие пользователи, упомянутые в этом твитте.Итерация узловых узлов в Neo4j с использованием py2neo

Я хочу добавить последователей и твитов в качестве узлов, а затем использовать поля reply_to и mentions_user в твитах, чтобы добавить соединения между твитами (reply_to) и твит и пользователем (упоминает).

Добавление узлов хорошо работает с пакетом. Однако, когда я хочу повторить все твиты, используя py2neo, чтобы добавить отношения, я получаю OutOfMemoryError: Java кучу пространства.

Я пытаюсь перебирать твитов, как это:

for tweet in graph.find("Tweet") 

Мои вопросы сейчас: а) Есть ли другой способ py2neo перебрать (много) узлов? b) Немного шире: я читал в документации py2neo, что лучше использовать транзакции cypher, чем пакетные. Должен ли я это делать, и может ли это помочь а)?

Заранее благодарим за любую помощь! KMM

ответ

0

Есть, конечно, способы эффективного загрузки массивных данных, но этот конкретный метод (поиск всех элементов определенного типа) не является тем, который использует структуру графика базы данных и поэтому не будет хорошо масштабироваться ,

Вы можете, конечно, увеличить размер кучи Java, если это одноразовый, и вы можете уйти от него. Но лучше всего, если вы посмотрите на операцию LOAD CSV: http://neo4j.com/docs/stable/query-load-csv.html

Смежные вопросы