我是scala的新手。请保持温柔。
下面的导入会导入ml下的所有内容(每个类,特征和对象)。
import org.apache.spark.ml._
但不是
下的ParamMapimport org.apache.spark.ml.param._
换句话说,对于下面的代码,如果我这样做:
import org.apache.spark.ml.param._
import org.apache.spark.ml._
class Kmeans extends Transformer {
def copy(extra: ParamMap): Unit = {
defaultCopy(extra)
}}
然后我没有导入错误,但是如果我评论import org.apache.spark.ml.param._
:
//import org.apache.spark.ml.param._
import org.apache.spark.ml._
class Kmeans extends Transformer {
def copy(extra: ParamMap): Unit = {
defaultCopy(extra)
}}
它在ParamMap上给出了导入错误。
问题
为什么import org.apache.spark.ml.param.ParamMap
中未包含此import org.apache.spark.ml.param._
答案 0 :(得分:1)
Scala导入不是递归的-import org.apache.spark.ml._
表示直接在ml
包下 导入所有类和字段,但不能在其子包下导入所有类和字段。
由于ParamMap
在ml
的子包之一(ml.param
中)下,因此您必须直接导入该包或ParamMap
类。