【发布时间】:2015-01-07 18:18:45
【问题描述】:
我在将大 xml 文件 (1.3 gb) 导入 mongodb 以便以 map & reduce 方式搜索最常用词时遇到问题。
http://dumps.wikimedia.org/plwiki/20141228/plwiki-20141228-pages-articles-multistream.xml.bz2
在这里,我从这个大文件中附上 xml 剪切(前 10 000 行):
http://www.filedropper.com/text2
我知道我不能直接将xml导入mongodb。我使用了一些工具来做到这一点。我使用了一些python脚本,但都失败了。
我应该使用哪个工具或脚本?什么应该是关键和价值? 我认为找到最频繁世界的最佳解决方案就是这个。
(_id : id, value: word )
然后我会总结文档示例中的所有元素:
http://docs.mongodb.org/manual/core/map-reduce/
任何线索将不胜感激,但是如何将此文件导入 mongodb 以拥有这样的集合?
(_id : id, value: word )
如果您有任何想法,请分享。
已编辑 经过研究,我会用python或者js来完成这个任务。
我只会提取/<page><revision>下<text></text>部分中的单词,排除<,>等,然后将单词分开并使用pymongo或js上传到mongodb。
所以有几页有修订和文本。
编辑
【问题讨论】:
-
有谁知道如何将这么大的文件,文本部分,转换成csv或json
-
大文件的问题,可以用
fileinput解决,因为你一次只加载一行,而不是整个文件都加载到内存中,然后你决定什么时候写到另一个文件(csv 或 json)。 -
你能举个例子吗?
-
我做了这个,因为生成的文件会很大,所以使用
open将使用所有内存,github.com/abdelouahabb/kouider-ezzadam/blob/master/… -
我很努力地这样做了,还有stackoverflow.com/questions/19286118/… 并得到了内存错误....
标签: javascript python xml mongodb