我需要从06 / 2012-06 / 2016获取关于“Dollar”和“Euro”的英语维基百科文章的每日页面浏览量。
原始转储(* .bz2)位于: https://dumps.wikimedia.org/other/pagecounts-ez/merged/
例如, https://dumps.wikimedia.org/other/pagecounts-ez/merged/pagecounts-2014-01-views-ge-5-totals.bz2提供2014年1月的每小时/每日数据。
问题: 解压缩的文件太大,无法在任何文本编辑器中打开。
理想的解决方案: 读取每个.bz2文件的Python脚本(?),仅搜索en wikipedia“Dollar”/“Euro”条目,并将每日综合浏览量放入数据框。
提示:使用网页浏览API(https://wikitech.wikimedia.org/wiki/Pageviews_API)没有用,因为我需要在2015年之前提供一致的数据.stats.grok数据(http://stats.grok.se/)是既不是一种选择,因为生成的数据不同且不兼容。
答案 0 :(得分:1)
最简单的解决方案可能是编写搜索脚本以逐行读取标准输入(Python中的sys.stdin
; 当然那里a Stack Overflow question about that也是)然后将bzcat
的输出汇总到它:
$ bzcat pagecounts-2014-01-views-ge-5-totals.bz2 | python my_search.py
确保您的Python代码确实以递增方式处理输入,而不是尝试一次缓冲整个内存中的输入。
这样,就不需要使用任何特定于bzip2的代码使Python脚本本身复杂化。
(这也可能比尝试在Python中进行bzip2解码更快,因为bzcat进程可以与搜索脚本并行运行。)