关于Spark导入的困惑

时间:2015-06-18 08:37:09

标签: scala

我在spark中阅读了KMeans.scala的源代码,它让我对以下代码感到困惑:

import org.apache.spark.Logging  
import org.apache.spark.annotation.Experimental  
import org.apache.spark.mllib.linalg.{Vector, Vectors}  
import org.apache.spark.mllib.linalg.BLAS.{axpy, scal}  
import org.apache.spark.mllib.util.MLUtils  
import org.apache.spark.rdd.RDD  
import org.apache.spark.storage.StorageLevel  
import org.apache.spark.util.Utils  
import org.apache.spark.util.random.XORShiftRandom

我发现文件RDD在路径" spark-1.4.0 \ core \ src \ main \ scala \ org \ apache \ spark \ rdd"对应于import org.apache.spark.rdd.RDD。但文件MLUtils位于路径" spark-1.4.0 \ mllib \ src \ main \ scala \ org \ apache \ spark \ mllib \ util"对应于import org.apache.spark.mllib.util.MLUtils。 为什么他们的导入路径以" org.apache.spark"?开头?它们似乎位于同一个文件夹中#spark;#34;。

1 个答案:

答案 0 :(得分:1)

  

为什么他们的导入路径以“org.apache.spark”开头?

源文件的路径不确定它所属的包,其中包含package声明。尽管如此,在src/main/scala<subproject(core and mllib in these two cases)>/src/main/scala下将源文件放在与包对应的目录中是标准的(在某些方面有用)。相对于它,你可以看到目录是org/apache/spark/rddorg/apache/spark/mllib/util,就像在import中一样。