gpt4 book ai didi

hadoop - 自定义分区程序 : N number of keys to N different files for word count

转载 作者:可可西里 更新时间:2023-11-01 15:39:13 25 4
gpt4 key购买 nike

您好,我正在学习 hadoop,我想要一个关于如何使用自定义 partioner 解决字数统计问题的示例。我希望将缩减器设置为 26,以便所有以“A”开头的字符都将转到第一个缩减器,所有字符“B”将转到第二个缩减器,依此类推....

公共(public)类 PersonPartitioner 扩展了 Partitioner{

@Override
public int getPartition(Text key, IntWritable Val, int numOfReducer) {
String line = key.toString();
String [] splits = line.trim().replaceAll("[0-9]", "").split("\\W+");
for(String str:splits){

if(null==str||str.trim().length()<1||""==str){
}else{String ch = str.substring(0, 1);
character.set(ch);
}
}




return Math.abs(character.charAt(0).hashCode()*127)%numOfReducer;

最佳答案

因此,如果您要统计字数,Text key 应该是单个单词(希望以 a-z 开头,因为您似乎并不关心数字)而不是整行。

其次,如果您知道此 Partitioner 只会在有 26 个 Reducer 的情况下使用,您可以简单地执行此操作。

@Override
public int getPartition(Text key, IntWritable Val, int numOfReducer) {
String word = key.toString();
char char = word.toLowerCase().charAt(0);
return Charcter.getNumericValue(char) - Character.getNumericValue('a');
}

关于hadoop - 自定义分区程序 : N number of keys to N different files for word count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19675168/

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