我有这样的记录:
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
Apache Pig将每一行视为记录,因此不适合此任务。 I'm aware of this blog post on processing multi-line records,但如果有一个更简单的解决方案,我宁愿不深入研究Java。有没有办法使用Hadoop Streaming(或类似mrjob的框架)来解决这个问题?
答案 0 :(得分:0)
这样做没有捷径。您必须创建自己的inputFormat和RecordReader类,然后您可以在Hadoop流命令中指定这些类。 请遵循:
http://bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/