gpt4 book ai didi

hadoop - Hadoop 的分区器,用于 key 的前两个单词

转载 作者:可可西里 更新时间:2023-11-01 15:19:03 26 4
gpt4 key购买 nike

当我执行 Hadoop 流式处理时。有映射器的输出(键,值)键是用空格分隔的单词序列。

我想使用返回前两个单词的哈希值的分区器。

所以,实现为

public static class CounterPartitioner extends Partitioner<Text, IntWritable> {
@Override
public int getPartition(Text key, IntWritable value, int numPartitions) {
String[] line = key.toString().split(" ");
String prefix = (line.length > 1) ? (line[0] + line[1]) : line[0];
return (prefix.hashCode() & Integer.MAX_VALUE) % numPartitions;
}
}

我的问题是有没有办法通过使用内置的 Hadoop 库和修改配置,例如

mapred.output.key.comparator.class
stream.map.output.field.separator
stream.num.map.output.key.fields
map.output.key.field.separator
mapred.text.key.comparator.options
...

提前致谢。

最佳答案

When I perform Hadoop streaming. There's the output of mapper (Key, Value) The key is a word sequence that separated with white-space.

My question is is there a way by using built-in Hadoop library and modifying configuration such as

mapred.output.key.comparator.classstream.map.output.field.separator

内置的 Hadoop 库是基于 Java 的,流式传输的目的是使用除 Java 之外的与 STDIO/STDOUT 对话的其他语言。

我看不到使用 Java 构建的 Hadoop API 更改流相关属性的目的。

BYW, Configuration#set除了在配置文件和命令提示符下设置配置属性外,还可用于设置配置属性。

关于hadoop - Hadoop 的分区器,用于 key 的前两个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8612342/

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