我正在使用Neo4j和py2neo来分析Twitter数据。我是所有这些中的新手,所以这个问题可能非常基础。但我无法在任何文件中找到答案。 我有两个csv文件,一个有100个粉丝,另一个有22000个推文。 对于推文,我有类似的信息是对另一条推文和本推文中提及的其他用户的回复。
我想添加关注者和推文作为节点,然后使用推文的reply_to和mentions_user字段添加推文(reply_to)和推文和用户(提及)之间的连接。
添加节点适用于批处理。但是,当我想使用py2neo迭代所有推文来添加关系时,我得到OutOfMemoryError:Java堆空间。
我试图像这样迭代推文:
for tweet in graph.find("Tweet")
我现在的问题是: a)py2neo中是否有另一种方法可以迭代(很多)节点? b)更广泛一点:我在py2neo文档中读到,使用密码交易比批处理更好。我应该这样做,这对a)也有帮助吗?
提前感谢您的帮助! KMM
答案 0 :(得分:0)
有一些方法可以有效地加载批量数据,但是这种特殊方法(查找特定“类型”的所有项目)并不是利用数据库图形结构的方法,因此无法很好地扩展。
如果这是一次性的话,你当然可以增加Java堆大小,你可以侥幸逃脱它。但最好的办法是查看LOAD CSV操作:http://neo4j.com/docs/stable/query-load-csv.html