gpt4 book ai didi

hadoop - MapReduce默认的Input键是什么?

转载 作者:可可西里 更新时间:2023-11-01 16:39:31 24 4
gpt4 key购买 nike

我正在使用基于hadoop 2.6.0MpaReduce,我想跳过数据文件的前六行,所以我使用

if(key.get()<6) 
return ;
else
{do ....}

在我的 map() 函数中

但这是不对的。我发现 map()input key 不是文件行的 offset 。关键是每行长度的总和。为什么?看起来不像很多书上的字。

最佳答案

If you look at the code ,它是文件的实际字节偏移量而不是行。

如果您想跳过文件的前 n 行,您可能必须编写自己的输入格式/记录阅读器,或者确保在映射器逻辑 ala 中保留一个行计数器:

 int lines = 0;
public void map(LongWritable key, Text value, ...) {
if(++lines < 6) { return; }

}

如果您拆分文本文件(因此有 > 1 个映射器),这显然不起作用。所以写一个专用的 InputFormat 是解决这个问题最干净的方法。

另一个技巧是测量该特定文件中前 n 行的字节数,然后在开头跳过该字节数。

关于hadoop - MapReduce默认的Input键是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319252/

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