나는 거대한 그래프를 neo4j에 씁니다. 내 코드를 사용하는 데 2 개월이 약간 걸릴 것입니다. py2neo : 그래프를 만들 때 쓰기 시간 최소화
는 내가 코드를 생성하는 py2neobatch
시설을 사용
user,friends
3197468391,1346449342 3873244116 4226080662, ...
처럼 Kaggle's events recommendation challenge에서 나는 외모를 사용하고있는 user_friends.csv
파일을 데이터를했다. 내가 할 수있는 최선인가, 아니면 실행 시간을 상당히 줄이는 또 다른 방법인가? 여기
는의는 I가 높은 수준을 py2neo
기능을 사용하여 무향 그래프를 만들 수있는 방법을 찾을 수 없습니다 또한
#!/usr/bin/env python
from __future__ import division
from time import time
import sqlite3
from py2neo import neo4j
graph = neo4j.GraphDatabaseService("http://localhost:7474/db/data/")
batch = neo4j.WriteBatch(graph)
people = graph.get_or_create_index(neo4j.Node,"people")
friends = graph.get_or_create_index(neo4j.Relationship,"friends")
con = sqlite3.connect("test.db")
c = con.cursor()
c.execute("SELECT user, friends FROM user_friends LIMIT 2;")
t=time()
for u_f in c:
u_node = graph.get_or_create_indexed_node("people",'name',u_f[0])
for f in u_f[1].split(" "):
f_node = graph.get_or_create_indexed_node("people",'name', f)
if not f_node.is_related_to(u_node, neo4j.Direction.BOTH,"friends"):
batch.create((u_node,'friends',f_node))
batch.submit()
print time()-t
코드? 나도 알아 cypher
같은 모양으로 할 수 create (node(1) -[:friends]-node(2))
미리 감사드립니다.