微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Scala’无法覆盖’错误

我在Scala中为Hbase编写mapreduce作业时遇到了这个奇怪的问题.问题是我的scala类让我们说ScalaMapReducer必须扩展下面的类
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapper.html

但是当我这样做并“覆盖”map方法(继承形式的TableMapper的超类Mapper)时,scala抱怨错误’map overrides nothing’并且无法编译,而我可以在Java中没有任何问题.

我找到了以下解决方法

1)定义一个Dummy java类,它扩展TableMapper类并使用一些空实现覆盖map.现在从scala扩展这个Dummy类.

2)我在goole上发现了这个
workaround
它定义了Mappers特征.

虽然我猜这可能与内部类有关,但我真的没有任何线索和解释.

(这是一个一般的Scala问题)

编辑:
我的scala类中的示例代码,

class ScalaMapReducer extends TableMapper[Text,IntWritable]
{
    override def map(row:ImmutableBytesWritable,result:Result,context:Context):Unit  =
    {
        //..some code
    }
}

解决方法:

由于地图中的键,值类型不匹配以及减少定义,因此错误映射会覆盖任何内容.双重检查,一些示例代码可能有助于更好的调试.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐