R/Python在大数据中的运用策略

2019-08-20  本文已影响0人  大圣哔哔

作者:阿乐

无论是R用户还是Python用户,您很希望将喜欢的工具用于大数据上,但有时候用的并不多。事实上,许多人(错误地)认为R/Python对大数据的效果不佳。

默认情况下,R/Python仅适合运行单计算机内存中处理数据,同理Python也是如此。硬件的进步使这对许多用户来说不再是一个问题,因为大多数笔记本电脑至少配备了4-8Gb的内存,你也可以在任何主要的云提供商上获得具有大内存的实例。但这点内存对于几乎所有可以真正称为大数据的数据集来说,这仍然是一个真正的问题。

使用R或者Python处理大数据时遇到的最大问题是它们是基于内存运算的。数据大小必须和您机器上的内存匹配,而且不是1:1。因为您实际上正在使用数据,所以一个过往经验则是您的机器内存需要是数据大小的2-3倍。

在R/Python中进行大数据工作的另一个大问题是数据传输速度。因为空间的差距会造成时间的缓慢,数据传输的速度也是影响数据处理的一大因素。

然而,不必悲观,在R/Python中使用大数据还是有一些有效的方法和策略思路。

 0  样本和模型

如果要进行抽样和建模,您需要将数据进行抽样处理,直到可以轻松下载的大小,并在样本上创建模型。抽样的数据大小可以使模型运行时间缩短,同时保持统计有效性。

如果需要保持类平衡(或者一个类需要过度/欠量采样),则在抽样期间对数据集进行分层是相当简单的。

这种策略优点是提高了运行速度,方便原型设计,制作常用的数据包,缺点无法满足常见的商业报表需求,例如汇总统计等,以及可能因抽样的不合理导致数据失效。

 0  块处理

在该策略中,数据被分块成可分离的单元,并且每个块被单独拉出并且串行,并行或在重新组合之后操作。该策略在概念上类似于MapReduce的算法。根据手头的任务,块可能是时间段,地理单位,或逻辑如单独的业务,部门,产品或客户群。

在此策略中,好处是获得了完整的数据以及选择合适的并行方法缩短数据处理的时间,但缺点是你要合理地划分块。

 0  数据库预处理

在此策略中,数据预先在数据库上进行处理,只有将经过处理的数据集从数据库读到到R或者Python的机器中。在将数据导入之前就在数据库中进行汇总或过滤来可以获得显着的加速。 

这种策略的好处是,使用熟悉的SQL处理数据,更少的数据意味着更快的传输速度和内存处理速度,从而减少运行时间。缺点是某些操作无法在数据库完成,数据库的处理速度成了数据分析的处理数据的影响因素。

 0  数据接口

目前大数据处理几乎是数据仓库,直接进行联机分析处理。无论是Hive还是Spark,都有R和Python的接口。如果需要使用R或者Python,可以直接使用丰富的各种接口,进行数据处理操作。

这种策略的好处是搭建起了处理大数据的通道,缺点是要提前部署好需要的环境。

 0  结尾

无论使用哪种工具,都需要与本身的环境、诉求、条件匹配。如果你仅仅是对大量的数据进行报表式的指标统计汇总,那使用数据库、数据仓库进行原生的操作完全可以满足需求。在一些你不得不配合相关的数据分析工具R或者Python进行操作时,你可能就会寻找一个合适的方案。

在此向大家征集数据故事,你的人生也许有你很中意的人和事,我希望用精确的数字和可视化映射平凡人的美好故事。期待您的私信!

感谢您的耐心阅读,请顺手点个「在看」,谢谢。

『 延伸阅读 』

技术

有意思 | 七夕用代码地写封优雅的情书

  • 上新 | 数据分析师用什么姿势学?

  • 技术公司怎么用R和shiny赋能业务?

  • 数据运营 | 数据平台实践流程

  • 生活

  • 精选 | 四面楚喵

  • 上一篇下一篇

    猜你喜欢

    热点阅读