2015-06-18 28 views
-1

進口混亂我讀KMeans.scala的火花源代碼,它混淆我用下面的代碼:關於Spark中

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是在路徑「火花1.4。 0 \ core \ src \ main \ scala \ org \ apache \ spark \ rdd「,它對應於import org.apache.spark.rdd.RDD。但是文件MLUtils位於對應於導入org.apache.spark.mllib.util.MLUtils的路徑「spark-1.4.0 \ mllib \ src \ main \ scala \ org \ apache \ spark \ mllib \ util」。 爲什麼他們的導入路徑以「org.apache.spark」開頭?看起來他們在同一個文件夾中「火花」。

回答

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 s。