使用py2neo将大型XML文件导入neo4j

时间:2016-12-29 13:59:56

标签: python xml neo4j py2neo

我有一个非常大的XML文件(2Gb),我试图用Python将它上传到neo4j。我正在创建一本字典

mydata = etree.parse("myfile.xml")
data = mydata.getroot()

data_list = {}
temp_elt = {} #will hold each element

j=0
for pub in data:    
    for elt in pub.getchildren():
        temp_elt[elt.tag] = elt.text 
    data_list[j] = temp_elt  
    j=j+1
    temp_elt = {}

这不需要很长时间(考虑到大量数据)

然后我尝试上传到neo4j:

graph = Graph("http://localhost:7474/db/data/")
graph.delete_all()

for element in data_list:
    authnode = Node("Person",author=data_list[element]["author"])
    pubnode = Node(data_list[element]["type"],title=data_list[element]["title"])

    graph.merge(authnode)
    graph.merge(pubnode)

    graph.merge(Relationship(authnode,"wrote",pubnode))

这部分需要几天,如果不是几周。

我发现的最相似的问题是:Importing a large xml file to Neo4j with Py2neo 但是这里建议将xml文件转换为csv文件,这个文件本身至少需要整整一周,所以csv不是一个选项。

其他人建议使用Geoff格式,但是load2neo驱动程序暂时没有更新,我似乎无法安装它。

有什么建议吗?

0 个答案:

没有答案