有什么区别 pyspark mllib
和 pyspark ml
包裹? :
https://spark.apache.org/docs/latest/api/python/pyspark.mllib.html
https://spark.apache.org/docs/latest/api/python/pyspark.ml.html
pyspark mllib
似乎是数据帧级别的目标算法 pyspark ml
我找到的一个区别是 pyspark ml
器物 pyspark.ml.tuning.CrossValidator
而 pyspark mllib
才不是。
我的理解是,如果在Apache Spark框架上实现算法,库应该使用 mllib
但似乎有分裂?
在没有转换类型的情况下,每个框架之间似乎没有互操作性,因为它们各自包含不同的包结构。
根据我的经验 pyspark.mllib
类只能用于 pyspark.RDD
的,而(如你所说) pyspark.ml
类只能用于 pyspark.sql.DataFrame
的。有人提到在文档中支持这一点 pyspark.ml
,第一次进入 pyspark.ml package
状态:
基于DataFrame的机器学习API,可让用户快速组装和配置实用的机器学习管道。
现在我想起了一篇关于Spark 2.0中可用的三个API,它们的相对优点/缺点以及它们的比较性能的文章。 三个Apache Spark API的故事:RDD,DataFrame和数据集。我正在对新的客户端服务器进行性能测试,并且有兴趣是否会出现一个值得开发基于RDD的方法而不是基于DataFrame的方法(我选择的方法)的场景,但是我离题。
要点是,有些情况下,每个都非常适合,有些情况可能不适合。我记得的一个例子是,如果数据已经是结构化的,DataFrames比RDD具有一些性能优势,那么随着运营复杂性的增加,这显然是极其激烈的。另一个观察结果是,DataSets和DataFrames在缓存时消耗的内存远远少于RDD。总之,作者得出结论,对于低级操作,RDD很好,但对于高级操作,查看和与其他API的DataFrame和DataSet绑定是优越的。
因此,为了回到你的问题,我相信答案是响亮的 pyspark.ml
因为此包中的类旨在使用 pyspark.sql.DataFrames
。我想如果你要针对与DataFrame和RDD相同的数据进行测试,那么在每个软件包中实现的复杂算法的性能都会很重要。此外,查看数据和开发引人注目的视觉效果将更直观,性能更佳。
根据我的经验 pyspark.mllib
类只能用于 pyspark.RDD
的,而(如你所说) pyspark.ml
类只能用于 pyspark.sql.DataFrame
的。有人提到在文档中支持这一点 pyspark.ml
,第一次进入 pyspark.ml package
状态:
基于DataFrame的机器学习API,可让用户快速组装和配置实用的机器学习管道。
现在我想起了一篇关于Spark 2.0中可用的三个API,它们的相对优点/缺点以及它们的比较性能的文章。 三个Apache Spark API的故事:RDD,DataFrame和数据集。我正在对新的客户端服务器进行性能测试,并且有兴趣是否会出现一个值得开发基于RDD的方法而不是基于DataFrame的方法(我选择的方法)的场景,但是我离题。
要点是,有些情况下,每个都非常适合,有些情况可能不适合。我记得的一个例子是,如果数据已经是结构化的,DataFrames比RDD具有一些性能优势,那么随着运营复杂性的增加,这显然是极其激烈的。另一个观察结果是,DataSets和DataFrames在缓存时消耗的内存远远少于RDD。总之,作者得出结论,对于低级操作,RDD很好,但对于高级操作,查看和与其他API的DataFrame和DataSet绑定是优越的。
因此,为了回到你的问题,我相信答案是响亮的 pyspark.ml
因为此包中的类旨在使用 pyspark.sql.DataFrames
。我想如果你要针对与DataFrame和RDD相同的数据进行测试,那么在每个软件包中实现的复杂算法的性能都会很重要。此外,查看数据和开发引人注目的视觉效果将更直观,性能更佳。