首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >` `pyspark‘与` `pyspark’包

` `pyspark‘与` `pyspark’包
EN

Stack Overflow用户
提问于 2017-04-05 19:59:01
回答 1查看 5.1K关注 0票数 18

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.CrossValidator,而pyspark mllib没有实现。

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

在没有转换类型的情况下,每个框架之间似乎没有互操作性,因为每个框架都包含不同的包结构。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-05 21:11:09

根据我的经验,pyspark.mllib类只能与pyspark.RDD类一起使用,而pyspark.ml类只能用于pyspark.sql.DataFrame类。在pyspark.ml文档中提到了这一点,这是pyspark.ml package中的第一个条目:

基于DataFrame的机器学习API使用户能够快速地组装和配置实用的机器学习管道。

现在,我想起了我一段时间前读过的一篇文章,内容涉及Spark2.0中提供的三个API、它们的相对优缺点以及它们的比较性能。三个Apache的故事:RDD、DataFrames和数据集。我当时正在新客户端服务器上进行性能测试,我感兴趣的是,是否有一种方案值得开发基于RDD的方法,而不是基于DataFrame的方法(我选择的方法),但我偏离了方向。

要点是,在某些情况下,每种情况都是非常合适的,而其他情况则可能不合适。我记得的一个例子是,如果您的数据已经结构化了,DataFrames比RDD带来了一些性能上的好处,那么随着操作的复杂性的增加,这显然是极端的。另一个发现是,DataSets和DataFrames在缓存时消耗的内存要比RDD少得多。总之,对于低级别操作,RDD是很好的,但是对于高级操作,查看和绑定其他API的DataFrames和DataSets更好。

因此,为了完整地回答您的问题,我相信答案是一个响亮的pyspark.ml,因为这个包中的类是为了利用pyspark.sql.DataFrames而设计的。我可以想象,如果您要针对作为DataFrame和RDD的相同结构的数据进行测试,那么在这些包中实现的复杂算法的性能将是非常重要的。此外,查看数据和开发引人注目的可视化将更加直观,并具有更好的性能。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43240539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档