我有这样的记录:

Name: Alan Kay
Email: [email protected]
Date: 09-09-2013

Name: Marvin Minsky
Email: [email protected]
City: Boston, MA
Date: 09-10-2013

Name: Alan Turing
City: New York City, NY
Date: 09-10-2013

它们是多行,但行数并不总是相同,并且通常用换行符分隔。我如何将其转换为下面的输出?
Alan Kay|[email protected]||09-09-2013
Marvin Minsky|[email protected]|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的框架)解决此问题?

最佳答案

没有捷径可做。您必须创建自己的inputFormat和RecordReader类,然后才能在Hadoop流命令中指定这些类。
请遵循以下步骤:

http://bigdatacircus.com/2012/08/01/wordcount-with-custom-record-reader-of-textinputformat/

关于java - 是否可以使用Hadoop流处理多行记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22938076/

10-16 01:33