我已经解决了这个问题。任何人都可以给出正确的答案并给出解释吗?

哪个最能描述TextInputFormat如何处理输入文件和换行符?

答:输入文件拆分可能会跨越换行符。穿过文件拆分的行由RecordReader读取
包含虚线起点的分割线。

B.输入文件拆分可能会跨越换行符。穿过文件拆分的行由
两个拆分的RecordReaders都包含虚线。

C.输入文件将在换行符处精确分割,因此每个RecordReader都会读取一系列
完整的线条。

D.输入文件拆分可能会跨越换行符。跨越文件拆分的行将被忽略。

E.输入文件分割可能会跨越换行符。穿过文件拆分的行由RecordReader读取
包含虚线末尾的拆分的部分。

提前致谢

最佳答案

Linerecordreader会在下面的textinputformat类型调用的帮助下读取 map 调用的值,直到遇到新行(或指定的分隔符)为止。因此,很明显,一条记录只有在遇到新的一行时才会结束。

newSize = in.readLine(value, maxLineLength, Math.max((int)Math.min(Integer.MAX_VALUE, end-pos),maxLineLength));

因此,选项A保持良好状态。

输入文件拆分可能会跨越换行符。穿过文件拆分的行由包含虚线开头的拆分的RecordReader读取。

10-08 14:39