我有这样的记录:
Name: Alan Kay
Email: Alan.Kay@url.com
Date: 09-09-2013
Name: Marvin Minsky
Email: Marvin.Minsky@url.com
City: Boston, MA
Date: 09-10-2013
Name: Alan Turing
City: New York City, NY
Date: 09-10-2013
它们是多行的,但并不总是有相同的行数,而且通常用换行符隔开。如何将其转换为下面的输出?
Alan Kay|Alan.Kay@url.com||09-09-2013
Marvin Minsky|Marvin.Minsky@url.com|Boston,MA|09-10-2013
Alan Turing||New York City, NY|09-10-2013
apachepig将每一行都视为一个记录,因此不适合此任务。我知道这篇关于处理多行记录的博文,但如果有更简单的解决方案,我不想深入研究java。有没有一种方法可以通过hadoop流媒体(或者像mrjob这样的框架)来解决这个问题?
1条答案
按热度按时间uklbhaso1#
没有捷径可走。您必须创建自己的inputformat和recordreader类,然后可以在hadoop流命令中指定这些类。遵循以下步骤:
http://bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/