我想构建一个基本上以维基百科pagecount-statistic为输入的Hadoop-Job,并创建一个像
这样的列表en-Articlename: en:count de:count fr:count
为此,我需要与每种语言相关的不同文章名称 - 即Bruges(en,fr),Brügge(de),MediaWikiApi查询文章(http://en.wikipedia.org/w/api.php?行动=查询&安培;标题=布鲁日&安培;丙= langlinks&安培; lllimit = 500)
我的问题是找到解决这个问题的正确方法。
我的草图方法是:
现在查询MediaAPI的每一行似乎都不太方便,但目前无法理解更好的解决方案。
您认为当前的方法是否可行,或者您能想到不同的方法吗?
旁注:创建的作业链应用于对我的(小)Hadoop-Cluster进行一些时间测量,因此更改任务仍然可以
编辑: Here是一个非常类似的讨论,我现在才发现..
答案 0 :(得分:2)
我认为在批处理期间查询MediaApi不是一个好主意,因为:
您问题的可能解决方案是下载整个wikipedia dump。每篇文章都以预定义的格式包含其他语言中该文章的链接,因此您可以轻松编写收集该信息的地图/减少作业,并在英文文章名称和其他文章之间建立对应关系。
然后你可以在地图/减少作业处理pagecount-statistic中使用对应关系。如果你这样做,你将独立于mediawiki的api,加快你的数据处理并改善调试。