gpt4 book ai didi

java - 是否可以使用 Hadoop Streaming 处理多行记录?

转载 作者:可可西里 更新时间:2023-11-01 16:15:12 28 4
gpt4 key购买 nike

我有这样的记录:

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 的框架)来解决这个问题?

最佳答案

没有捷径可以做到这一点。您必须创建自己的 inputFormat 和 RecordReader 类,然后您可以在 Hadoop 流命令中指定这些类。按照这个:

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

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com