gpt4 book ai didi

java - 如何指定tab作为hadoop输入文本文件的记录分隔符?

转载 作者:行者123 更新时间:2023-12-01 15:44:51 24 4
gpt4 key购买 nike

我的 hadoop M/R 作业的输入文件是一个文本文件,其中记录由制表符“\t”而不是换行符“\n”分隔。我如何指示hadoop使用制表符进行拆分,因为默认情况下它会围绕换行符进行拆分,并且文本文件中的每一行都被视为一条记录。

一种方法是使用自定义输入格式类,该类使用过滤器流将原始流中的所有选项卡转换为换行符。但这看起来并不优雅。

另一种方法是使用 java.util.Scanner 并以制表符作为分隔符。但我不知道如何在输入格式类中使用 java.util.Scanner 类。

最好的方法和替代方案是什么?

最佳答案

值 '\r' 和 '\n' 硬编码在 org.apache.hadoop.util.LineReader 类中,因此您不能将 TextInputFormat 与制表符分隔的记录一起使用。但使用特殊的 LineReader 类实现自己的 InputFormat 并不困难。最简单的解决方案是复制粘贴 TextInputFormat、LineRecordReader 和 LineReader 类,将它们移至包中并更改 LineReader 实现。

关于java - 如何指定tab作为hadoop输入文本文件的记录分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7271641/

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