本文主要是介绍Spark错误:class needs to be abstract, since: it has n unimplemented members,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一般情况下在Spark项目里面只会写一些数据处理的job,但是偶尔也会有一些特别的需求,这里需要定义一个商品(Sku)的类,写惯了Java的代码,写个bean应该也不难。
class SkuInfo {var skuCode: Stringvar skuName: Stringdef _skuCode(skuCode_ : String): Unit = {skuCode = skuCode_}def _skuName(skuName_ : String): Unit = {skuName = skuName_}
}
但是一直在报错,错误
Error:(11, 7) class SkuInfo needs to be abstract, since:
it has 5 unimplemented members.
/** As seen from class SkuInfo, the missing signatures are as follows.* For convenience, these are usable as stub implementations.*/def skuClassName_=(x$1: String): Unit = ???def skuCode_=(x$1: String): Unit = ???def skuDivisionName_=(x$1: String): Unit = ???def skuName_=(x$1: String): Unit = ???def skuSectionName_=(x$1: String): Unit = ???
class SkuInfo {
...
错误原因:
Scala的Class属性里面的变量一定要初始化。
如果没有初始化,Scala会认为认为当前类是一个抽象类,所以会报上面的错误。
如果只有一个变量没有初始化,编译器会提示该变量没有初始化。
解决办法:
var skuCode: String = ”“ 或者 var skuCode:String = _
如果是= _的话,Scala会自动填充一个默认值
一般来说,您应该仔细考虑这是否是代码的正确写法; 许多需要在使用前进行初始化的字段是安全的,如果没有任何机制来强制执行初始化,就会出现问题。
参考:
https://stackoverflow.com/questions/18453406/error-class-animal-needs-to-be-abstract-since-it-has-5-unimplemented-members
这篇关于Spark错误:class needs to be abstract, since: it has n unimplemented members的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!