gpt4 book ai didi

Java 泛型和 Hadoop : how to get a class variable

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

我是一名 .NET 程序员,在 Java 中从事一些 Hadoop 工作,我有点不知所措。在 Hadoop 中,我正在尝试设置一个 Map-Reduce 作业,其中 Map 作业的输出键的类型为 Tuple<IntWritable,Text> .当我使用 setOutputKeyclass 如下设置输出键时

JobConf conf2 = new JobConf(OutputCounter.class);
conf2.setOutputKeyClass(Tuple<IntWritable,Text>.class);

我遇到了一大堆错误,因为泛型和“.class”符号似乎不适用。尽管以下工作正常

JobConf conf2 = new JobConf(OutputCounter.class);
conf2.setOutputKeyClass(IntWritable.class);

有人对如何设置输出键类有任何指示吗?

干杯,于尔根

最佳答案

在 java 中,泛型在编译时被清除,所以你能做的最好的是:

 conf2.setOutputKeyClass(Tuple.class);

如果可以,为了做得更好,您可以子类化 Tuple 以在运行时保留一个类型:

 public class IntWritableTextTuple extends Tuple<IntWritable, Text> {}

然后将其用作 setOutputKeyClass 的参数。

请注意,我对 Hadoop 一无所知,所以这可能没有任何意义,但一般来说,对于 java 泛型,这就是你要做的。

关于Java 泛型和 Hadoop : how to get a class variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1156223/

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