我在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;。
答案 0 :(得分:1)
为什么他们的导入路径以“org.apache.spark”开头?
源文件的路径不确定它所属的包,其中包含package
声明。尽管如此,在src/main/scala
或<subproject(core and mllib in these two cases)>/src/main/scala
下将源文件放在与包对应的目录中是标准的(在某些方面有用)。相对于它,你可以看到目录是org/apache/spark/rdd
和org/apache/spark/mllib/util
,就像在import
中一样。