【发布时间】:2015-10-30 20:05:52
【问题描述】:
hadoop 处理文本文件时如何识别记录? 它是基于换行符还是句号?
如果我有一个 5000 字的文本文件列表,全部在单行上,用空格分隔;没有换行符、逗号或句号。 RecordReader 的行为如何?
例如abc pqr xyz lmn qwe rew poio kjkh ascd lkyg ......
【问题讨论】:
标签: hadoop mapreduce recordreader
hadoop 处理文本文件时如何识别记录? 它是基于换行符还是句号?
如果我有一个 5000 字的文本文件列表,全部在单行上,用空格分隔;没有换行符、逗号或句号。 RecordReader 的行为如何?
例如abc pqr xyz lmn qwe rew poio kjkh ascd lkyg ......
【问题讨论】:
标签: hadoop mapreduce recordreader
您可以使用textinputformat.record.delimiter 在配置中设置分隔符。
如果未提供,它将回退以根据以下之一拆分行:'\n' (LF) , '\r' (CR), or '\r\n' (CR+LF)。
因此,您的示例行将作为一条记录读取。
您可以阅读LineReader、TextInputFormat和LineRecordReader的代码了解更多详情。
【讨论】:
Integer.MAX_VALUE。如果你不覆盖它,它将读取块,直到找到一个分隔符。