我正在使用维基百科数据集来执行mapreduce。我使用的数据集是(Wikipedia Wiki命名空间)。bz2文件中的数据类似于以下
REVISION 724 234015 Wikipedia:Adding_Wikipedia_articles_to_Nupedia 2001-03-28T22:33:49Z ip:Larry_Sanger ip:Larry_Sanger
CATEGORY
IMAGE
MAIN Larry_Sanger LMS Adding_Nupedia_articles_to_Wikipedia Jimbo_Wales Nupedia Wikipedia
TALK
USER
USER_TALK
OTHER
EXTERNAL http://www.nupedia.com/write.shtml http://www.nupedia.com/policy.shtml http://www.nupedia.com/newsystem/signup.phtml http://www.nupedia.com/newsystem/writearticle.phtml?instr=on http://www.nupedia.com/editors.phtml
TEMPLATE
COMMENT *
MINOR 0
TEXTDATA 685
REVISION 724 431753 Wikipedia:Adding_Wikipedia_articles_to_Nupedia 2002-05-19T17:36:09Z Eclecticology 372
CATEGORY
IMAGE
MAIN Larry_Sanger LMS LMS Adding_Nupedia_articles_to_Wikipedia Jimbo_Wales Nupedia Wikipedia Mores Adding_Wikipedia_articles_to_Nupedia/Help
TALK
USER
USER_TALK
OTHER
EXTERNAL http://www.nupedia.com/write.shtml http://www.nupedia.com/policy.shtml http://chalkboard.nupedia.com http://www.nupedia.com/newsystem/signup.phtml http://www.nupedia.com/newsystem/writearticle.phtml?instr=on http://www.nupedia.com/editors.phtml
TEMPLATE
COMMENT "mores" linked; -/Talk
MINOR 1
TEXTDATA 738
基本上,我想把每个修订转换成一行,这样一组修订和所有其他细节都在一行中。我试着遵循类似的方法,但不起作用。有人能指导我怎么做吗?
预处理数据的最简单(可能不是最优雅)的方法。根据你的链接,我们谈论的是18GB,这是可行的。无论如何,您必须将数据与模式分离(数据似乎也包含文件名)。
为这种类型的数据编写自己的加载程序是一个更好的解决方案。在这里你可以找到一些示例项目和教程http://help.mortardata.com/technologies/pig/write_your_own