我在 Scala 中为 Hbase 编写 mapreduce 作业时遇到了这个奇怪的问题。问题是我的 scala 类可以说 ScalaMapReducer 必须扩展以下类 http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapper.html
但是当我这样做并“覆盖” map 方法(继承自 TableMapper 的超类 Mapper 形式)时,scala 会抱怨错误“map 不会覆盖任何内容”并且无法编译,而我可以在 Java 中毫无问题地这样做。
我找到了以下解决方法:
1) 定义一个 Dummy Java 类,它扩展了 TableMapper 类并用一些空实现覆盖地图。现在从 scala 扩展这个 Dummy 类。
2)我在 定义 Mappers 特征的goole解决方法中找到了这个。
虽然我猜这可能与内部课程有关,但我真的没有更多的线索和解释。
(这是一个通用的 Scala 问题)
编辑:来自我的 scala 类的示例代码,
class ScalaMapReducer extends TableMapper[Text,IntWritable]
{
override def map(row:ImmutableBytesWritable,result:Result,context:Context):Unit =
{
//..some code
}
}