gpt4 book ai didi

python - `pyspark mllib` 与 `pyspark ml` 包

转载 作者:IT老高 更新时间:2023-10-28 21:12:24 24 4
gpt4 key购买 nike

pyspark mllibpyspark 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.CrossValidatorpyspark mllib 没有。

我的理解是,如果在 Apache Spark 框架上实现算法是 mllib 但似乎存在拆分,则应该使用该库?

如果不转换类型,每个框架之间似乎没有互操作性,因为它们每个都包含不同的包结构。

最佳答案

根据我的经验,pyspark.mllib 类只能与 pyspark.RDD 一起使用,而(正如你提到的)pyspark.ml 类只能与 pyspark.sql.DataFrame 一起使用。 pyspark.ml 的文档中提到了支持这一点,pyspark.ml package 中的第一个条目状态:

DataFrame-based machine learning APIs to let users quickly assemble and configure practical machine learning pipelines.

现在我想起了我不久前读过的一篇文章,其中介绍了 Spark 2.0 中可用的三个 API、它们的相对优点/缺点以及它们的比较性能。 A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets .我当时正在对新的客户端服务器进行性能测试,并且对是否存在值得开发基于 RDD 的方法而不是基于 DataFrame 的方法(我选择的方法)的场景感兴趣,但我离题。

要点是,在某些情况下,每种情况都非常适合,而在另一些情况下可能不适合。我记得的一个例子是,如果你的数据已经是结构化的,DataFrames 比 RDD 有一些性能优势,随着操作复杂性的增加,这显然是非常激烈的。另一个观察结果是,DataSet 和 DataFrame 在缓存时比 RDD 消耗的内存要少得多。总而言之,作者的结论是,对于低级操作,RDD 很棒,但对于高级操作,查看和绑定(bind)其他 API 的 DataFrames 和 DataSets 更胜一筹。

所以回到你的问题,我相信答案是响亮的 pyspark.ml 因为这个包中的类旨在利用 pyspark.sql.DataFrames。我想,如果您要针对与 DataFrame 与 RDD 结构化的相同数据进行测试,那么在每个包中实现的复杂算法的性能将非常重要。此外,查看数据和开发引人入胜的视觉效果会更直观且性能更好。

关于python - `pyspark mllib` 与 `pyspark ml` 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43240539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com