我试图找出哪个给定的答案最适合这个问题:
给定具有以下结构的文件目录:行号, 制表符,字符串:
例:
1abialkjfjkaoasdfjksdlkjhqweroij
2kadfjhuwqounahagtnbvaswslmnbfgy
3kjfteiomndscxeqalkzhtopedkfsikj
您希望将每行作为一条记录发送到映射器。哪 InputFormat 你应该用来完成这一行:conf.setInputFormat (____.class) ; ?
A. 序列文件作为文本输入格式
B. 序列文件输入格式
C. 键值文件输入格式
D. BDBInputFormat
我的分析:
选项 A 是我发现存在的一种格式,但我不确定它的正确用法以及它是否适合作为答案。
选项B是不可能的,因为序列文件是二进制数据(K,V)二进制数据对的文件,因此不合适。
选项 C 是不可能的,因为没有 KeyValueFileInputFormat,尽管在这里,如果它是一个拼写错误并且它实际上是 KeyValuetextInputFormat,那么我认为这将是一个不错的选择。还是不是?
选项 D 是不可能的,因为没有 BDBInputFormat,即使它是一个拼写错误并且它实际上是 BDInputFormat,也不适合这种情况。
谢谢!D
答案是选项 C。可能是错别字
KeyValueTextInputFormat
可帮助您使用 TAB 拆分行。因此,行号将是键,字符串将是值。
您所猜测的那样,它可能是选项 C 中的拼写错误,它应该是 https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/KeyValueTextInputFormat.html 的。
有关更多详细信息,请参阅:如何在Hadoop-.20 api中指定KeyValueTextInputFormat Separator?