Apache spark spark mllib和spark ml的矢量实现之间有什么区别?

Apache spark spark mllib和spark ml的矢量实现之间有什么区别?,apache-spark,apache-spark-mllib,apache-spark-ml,Apache Spark,Apache Spark Mllib,Apache Spark Ml,在较高的层次上,我知道Spark MLLib是在RDD之上编写的,Spark ML是在数据帧之上构建的,但我的理解缺乏细节 特别是,不同的向量实现缺乏兼容性,这让我想知道实现中的差异是什么,为什么选择了这些设计决策?中解释了在ml中保留局部线性代数的动机 将线性代数分离为一个独立的模块,而不需要Spark依赖,以简化生产部署。我们可以将新模块称为mllib local,它将来可能包含本地模型。 主要问题是删除对用户定义类型的依赖关系 包名称将从mllib更改为ml。例如,Vector将从org.

在较高的层次上,我知道Spark MLLib是在RDD之上编写的,Spark ML是在数据帧之上构建的,但我的理解缺乏细节


特别是,不同的向量实现缺乏兼容性,这让我想知道实现中的差异是什么,为什么选择了这些设计决策?

中解释了在
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 vector加载向量时,该向量将自动转换为ml包中的向量


现在实现几乎相同,除了一些转换方法,

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 vector加载向量时,该向量将自动转换为ml包中的向量

目前实现几乎相同,不包括一些转换方法