Scala导入库通配符

时间:2018-08-13 16:44:29

标签: scala import wildcard

我是scala的新手。请保持温柔。

下面的导入会导入ml下的所有内容(每个类,特征和对象)。

import org.apache.spark.ml._

但不是

下的ParamMap
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)
}}

然后我没有导入错误,但是如果我评论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._

1 个答案:

答案 0 :(得分:1)

Scala导入不是递归的-import org.apache.spark.ml._表示直接在ml包下 导入所有类和字段,但不能在其子包下导入所有类和字段。

由于ParamMapml的子包之一(ml.param中)下,因此您必须直接导入该包或ParamMap类。