搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 花间剑指编程 > Python、R、Hadoop、Spark的客套比较.py1

Python、R、Hadoop、Spark的客套比较.py1

花间剑指编程 2020-10-18

1、Python与R语言的特性(优缺点)

1.1、Python与R语言的共同特性

  • Python和R在数据分析和数据挖掘方面都有比较专业和全面的模块,很多常用的功能,比如矩阵运算、向量运算等都有比较高级的用法。

  • Python和R两门语言有多平台适应性,linux、window都可以使用,并且代码可移植性强。

  • Python和R比较贴近MATLAB以及minitab等常用的数学工具。

1.2、Python与R语言的不同特性

  • 数据结构方面,由于是从科学计算的角度出发,R中的数据结构非常的简单,主要包括向量(一维)、多维数组(二维时为矩阵)、列表(非结构化数据)、数据框(结构化数据)。而 Python 则包含更丰富的数据结构来实现数据更精准的访问和内存控制,多维数组(可读写、有序)、元组(只读、有序)、集合(唯一、无序)、字典(Key-Value)等等。

  • Python与R相比速度要快。Python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转化为小数据(通过groupby)才能交给R做分析,因此R不可能直接分析行为详单,只能分析统计结果。

  • Python是一套比较平衡的语言,各方面都可以,无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处理,Python都有着明显优势。而R是在统计方面比较突出。


2、Python与R语言的应用场景

2.1、应用Python的场景

1、网络爬虫与网页抓取

  • Python 的 beautifulsoup 和 Scrapy 更加成熟、功能更强大,结合django-scrapy我们可以很快的构建一个定制化的爬虫管理系统。

2、内容管理系统

  • Python 只用 sqlachemy 通过ORM的方式,一个包就解决了多种资料库连接的问题,且在生产环境中广泛使用。基于Django,Python可以快速通过ORM建立资料库、后台管理系统,而R中的 Shiny 的鉴权功能暂时还需要付费使用。

3、API的构建

  • 通过Flask、Tornado等标准的网络处理库,Python也可以快速实现轻量级的API,而R则较为复杂。

2.2、应用R语言的场景

1、统计分析

  • 尽管 Python 里Scipy、Pandas、statsmodels提供了一系列统计工具 ,R 本身是专门为统计分析应用建立的,所以拥有更多此类工具。

2、互动式面板

  • R 的 shiny 和 shiny dashboard 可以较快地构建定制可视化页面。速度更快,所需代码更少。


3、Hadoop与Spark框架的特性(优缺点)

  • Hadoop和Spark均是大数据框架,都提供了一些执行常见大数据任务的工具。但确切地说,它们所执行的任务并不相同,彼此也并不排斥。虽然在特定的情况下,Spark据称要比Hadoop快100倍,但它本身没有一个分布式存储系统。而分布式存储是如今许多大数据项目的基础。它可以将PB级的数据集存储在几乎无限数量的普通计算机的硬盘上,并提供了良好的可扩展性,只需要随着数据集的增大增加硬盘。因此,Spark需要一个第三方的分布式存储。也正是因为这个原因,许多大数据项目都将Spark安装在Hadoop之上。这样,Spark的高级分析应用程序就可以使用存储在HDFS中的数据了。

  • 与Hadoop相比,Spark真正的优势在于速度。Spark的大部分操作都是在内存中,而Hadoop的MapReduce系统会在每次操作之后将所有数据写回到物理存储介质上。这是为了确保在出现问题时能够完全恢复,但Spark的弹性分布式数据存储也能实现这一点。

  • 另外,在高级数据处理(如实时流处理和机器学习)方面,Spark的功能要胜过Hadoop。在Bernard看来,这一点连同其速度优势是Spark越来越受欢迎的真正原因。实时处理意味着可以在数据捕获的瞬间将其提交给分析型应用程序,并立即获得反馈。在各种各样的大数据应用程序中,这种处理的用途越来越多,比如,零售商使用的推荐引擎、制造业中的工业机械性能监控。Spark平台的速度和流数据处理能力也非常适合机器学习算法。这类算法可以自我学习和改进,直到找到问题的理想解决方案。这种技术是最先进制造系统(如预测零件何时损坏)和无人驾驶汽车的核心。Spark有自己的机器学习库MLib,而Hadoop系统则需要借助第三方机器学习库,如Apache Mahout。

  • 实际上,虽然Spark和Hadoop存在一些功能上的重叠,但它们都不是商业产品,并不存在真正的竞争关系,而通过为这类免费系统提供技术支持赢利的公司往往同时提供两种服务。例如,Cloudera就既提供Spark服务也提供Hadoop服务,并会根据客户的需要提供最合适的建议。

  • Bernard认为,虽然Spark发展迅速,但它尚处于起步阶段,安全和技术支持基础设施方还不发达。在他看来,Spark在开源社区活跃度的上升,表明企业用户正在寻找已存储数据的创新用法。

4、Hadoop与Spark框架的适用场景

4.1、Hadoop的适用场景:

  • 日志的存储和统计;

  • 网页数据的分析和挖掘;

  • 商业分析,如用户的行为和广告关注度等;

  • 在线数据的反馈,及时得到在线广告的点击情况;

  • 用户网页的聚类,分析用户的推荐度及用户之间的关联度等

4.2、Spark的适用场景:

  • 跟Hadoop类似,但Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小。但是计算密集度较大的场合,受益就相对较小。


---------------- end ----------------

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Python、R、Hadoop、Spark的客套比较.py1》的版权归原作者「花间剑指编程」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注花间剑指编程微信公众号

花间剑指编程微信公众号:gh_501dc9c0c41b

花间剑指编程

手机扫描上方二维码即可关注花间剑指编程微信公众号

花间剑指编程最新文章

精品公众号随机推荐