- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试实现自定义 WritableComparable,如图所示 In this link
当我尝试在我的映射器方法中初始化自定义可写比较类时出现错误。我已经在我的代码中显示了我的错误。textpair 类应该放在单独的文件中吗?
public class Myprog {
public static class MyMap extends Mapper<Object, Text, TextPair, IntWritable> {
public void map(Object key, Text value, Context context)
throws IOException, InterruptedException {
TextPair writable = new TextPair();
//ERROR in this line
//No enclosing instance of type Myprog is accessible. Must qualify
//the allocation with an enclosing instance of type Myprog
//(e.g. x.new A() where x is an instance of Myprog).
....
}
}
public static class MyReduce extends Reducer<TextPair, IntWritable, Text, Text> {
public void reduce(TextPair key, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException {
}
}
public class TextPair implements WritableComparable<TextPair> {
....
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs =
new GenericOptionsParser(conf, args).getRemainingArgs();
Collections.addAll(headerList, header.split(","));
Job job = new Job(conf, "Myprog");
job.setJarByClass(Myprog.class);
job.setMapperClass(MyMap.class);
job.setReducerClass(MyReduce.class);
job.setMapOutputKeyClass(TextPair.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
最佳答案
您必须将TextPair
定义为static
。没有 Myprog
的外部实例就无法实例化。由于您的 Mapper
是静态的,因此它没有要引用的 Myprog
实例。
使用
public static class TextPair
将解决您的问题。
关于java - 使用自定义 WritableComparable 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13206667/
刚开始探索mapreduce,遇到了有compareTo()方法的Writablecomparable接口(interface)和有compare()方法的Writablecomparator,当我们
compare() 和 compareTo() 如果我们谈论排序键,它们是同义的但我只想知道在高度配置机器的时代是否需要考虑关于何时使用 compare() 以及何时使用 compareTo()? 如
下面是我使用 WritableComparator 的代码片段,但它不起作用 import org.apache.hadoop.io.WritableComparable;import org.apa
我正在尝试实现自定义 WritableComparable,如图所示 In this link 当我尝试在我的映射器方法中初始化自定义可写比较类时出现错误。我已经在我的代码中显示了我的错误。textp
我是 Hadoop 和 Java 的新手,我觉得我缺少一些明显的东西。如果这意味着什么,我正在使用 Hadoop 1.0.3。 我使用 hadoop 的目标是获取一堆文件并一次解析一个文件(而不是逐行
我需要在 Job 中使用 setGroupingComparatorClass 方法,它需要一个类型为 WritableComparable 的参数。 我无法实现 WritableComparable
尝试使用 Maven(或使用我的 IDE IntelliJ)编译我的 Pig UDF 时出现以下错误: cannot access org.apache.hadoop.io.WritableCompa
我已经为我的 map 作业实现了 WritableComparable 并向它传递了三个值。 public class KeyCustom implementsw WritableComparable
谁能给我解释一下: 什么是Hadoop中的Writable和Writable Comparable接口(interface)? 这两者有什么区别? 请举例说明。 提前致谢 最佳答案 Writable
您能否解释一下Java中的RAW Type是什么,我可以在Internet上找到更有意义的东西。 例如: Hadoop WritableComparable RawType , 什么是 RawType
我一直在尝试运行 hadoop 0.20.205.0 MapReduce 作业(单线程,本地),它表现出各种奇怪和意外的行为。我终于明白为什么了。在我看来,这就像是 hadoop 中的一个错误,但也许
在输出从 mapper 传递到 reducer 之前,mapreduce 中如何进行排序。如果我的映射器输出键是 IntWritable 类型,它是否使用 IntWritable 类中定义的比较器或类
我是一名优秀的程序员,十分优秀!