0
在高層我知道Spark MLLib是寫在RDD之上的,Spark ML是建立在DataFrame之上的,但我的理解缺乏細節。spark mllib和spark ml的矢量實現之間有什麼區別?
尤其是,不同向量實現的兼容性缺乏讓我想知道實現中的差異以及爲什麼選擇這些設計決策?
在高層我知道Spark MLLib是寫在RDD之上的,Spark ML是建立在DataFrame之上的,但我的理解缺乏細節。spark mllib和spark ml的矢量實現之間有什麼區別?
尤其是,不同向量實現的兼容性缺乏讓我想知道實現中的差異以及爲什麼選擇這些設計決策?
在SPARK-13944中解釋了保持局部線性代數ml
的動機。
將線性代數作爲獨立模塊劃分出來,無需使用Spark依賴關係來簡化生產部署。我們可以調用新模塊mllib-local,它可能包含未來的本地模型。 主要問題是刪除用戶定義類型的依賴關係。
軟件包名稱將從mllib更改爲ml。例如,Vector將從
org.apache.spark.mllib.linalg.Vector
更改爲org.apache.spark.ml.linalg.Vector
。新ML流水線中的返回矢量類型將是ML包中的一個;但是,現有的mllib代碼不會被觸及。因此,這可能會破壞API。另外,當矢量由Spark SQL從mllib矢量加載時,矢量將自動轉換爲ml包中的一個。
眼下實現接近相同,排除了一些轉換方法,
謝謝你,這是明確的! – HBX