您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    美团R言语数据运营实战
    时间:2018-08-10 21:11 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    技术沙龙 | 8月25日与多位资深技术大咖讨论小顺序电商实战

    一、引言

    近年来,随着散布式数据处置技术的不断改造,Hive、Spark、Kylin、Impala、Presto 等工具不断新陈代谢,对大数据集合的计算和存储成为理想,数据仓库/商业剖析部门日益成为各类企业和机构的标配。在这种背景下,能否能探求和开掘数据价值,具有精细化数据运营的才能,就成为判定一个数据团队成功与否的关键。

    在数据从后台走向前台的进程中,数据展现是最后一步关键环节。与冰冷的表格展现相比,将数据转化成图表并停止适当的内容组织,往往能更快速、更直观的传递信息,进而更好的提供决策支持。从结构化数据到最终的展现,需求经过一系列的探求和剖析进程去完成产品思绪的沉淀,这个进程也伴随着少量的数据二次处置。

    上述这些场合 R 言语有着共同的优势。本文将基于美团到店餐饮技术部的精细化数据运营实际,引见 R 在数据剖析与可视化方面的工程才能,希望可以抛砖引玉,也欢迎业界同行给我们提供更多的建议。

    二、数据运营产品分类与 R 的优势

    2.1 数据运营产品分类

    在企业数据运营进程中,思索运用场景、产品特点、实施角色以及可应用的工具,大致可以将数据运营需求分为四类,如下表所示:

    美团R言语数据运营实战

    2.2 R 在数据运营上的优势

    如上节所述,在精细化数据运营进程中,常常需求运用高度定制的数据处置、可视化、剖析等手腕,这些进程 Excel、Tableau、企业级报表工具都无法八面玲珑,而恰恰是 R 的强项。普通来说,R 具有的如下特征,让其有了“数据剖析范围的瑞士军刀”的名号:

    收费、开源、可扩展:截至到 2018-08-02,“ The CRAN package repository features 12858 available packages. ”,CRAN 上的软件包触及贝叶斯剖析、运筹学、金融、基因剖析、遗传学等方方面面,并在继续新增和迭代。

    可编程:R 本身是一门解释型言语,可以经过代码控制执行进程,并能经过 rPython、rJava 等软件包完成和 Python、Java 言语的相互调用。

    弱小的数据操控才能:

    数据源接入:经过 RMySQL、SparkR、elastic 等软件包,可以完成从 MySQL、Spark、Elasticsearch 等外部数据引擎获取数据。

    数据处置:内置 vector、list、matrix、data.frame 等数据结构,并能经过 sqldf、tidyr、dplyr、reshape2 等软件包完成对数据的二次加工。

    数据可视化:ggplot2、plotly、dygraph 等可视化包可以完成高度定制化的图表渲染。

    数据剖析与开掘:R 本身是一门由统计学家发起的面向统计剖析的言语,经过自行编程完成或许第三方软件包调用,可以轻松完成线性回归、方差剖析、主成分剖析等剖析与开掘功用。

    初具雏形的效劳框架:

    Web 编程框架:例如不知晓前端和系统开发的同窗,经过 shiny 软件包开发本人的数据运用。

    效劳化才能:例如经过 rserve 包,可以完成 R 和其他言语通讯的 C/S 架构效劳。

    关于以数据为中心的运用来说,Python 和 R 都是不错的选择,两门言语在开展进程中也互有自创。“越接近统计研讨与数据剖析,越倾向 R;越接近工程开发工程环境的人,越倾向 Python”,Python 是一个全能型“运发动”,R 则更像是一个统计剖析范围的“剑客”,“Python 并未树立起一个能与 CRAN 媲美的庞大的代码库,R 在这方面具有相对抢先优势。统计学并不是 Python 的中心使命”。各技术网站上有少量“Python VS R ”的讨论,感兴味的读者可以自行了解和作出选择。

    三、R 的数据处置、可视化、可重复性数据剖析才能

    关于具有编程才能的剖析师或许具有剖析才能的开发人员来说,在停止一系列长期的数据剖析工程时,运用 R 既可以满足“一次开发,终身受用”,又可以满足“调整灵敏,图形丰厚”的要求。下文将辨别引见 R 的数据处置才能、可视化才能和可重复性数据剖析才能。

    3.1 数据处置

    在企业级数据系统中,数据清洗、计算和整合任务会经过数据仓库、Hive、Spark、Kylin 等工具完成。关于数据运营项目,虽然 R 操作的是结果数据集,但也不能避免需求在查询层停止二次数据处置。

    在数据查询层,R 生态现成就存在众多的组件支持,例如可以经过 RMySQL 包停止 MySQL 库表的查询,可以运用 Elastic 包对 Elasticsearch 索引文档停止搜索。关于 Kylin 等新技术,在 R 生态的组件支持没有跟上时,可以经过运用 Python、Java 等系统言语停止查询接口封装,在 R 外部运用 rPython、rJava 组件停止第三方查询接口调用。经过查询组件获取的数据普通以 data.frame、list 等类型对象存在。

    另外 R 本身也拥有比较完备的二次数据处置才能。例如可以经过 sqldf 运用 sql 对 data.frame 对象停止数据处置,可以运用 reshape2 停止宽格式和窄格式的转化,可以运用 stringr 完成各种字符串处置,其他如排序、分组处置、缺失值填充等功用,也都具有完善的言语本身和生态的支持。

    3.2 数据可视化

    数据可视化是数据探求进程和结果出现的关键环节,而 “ R is a free software environment for statistical computing and graphics. ”,绘图(可视化)系统也是 R 的最大优势之一。

    目前 R 主流支持的有三套可视化系统:

    内置系统:包括有 base、grid 和 lattice 三个内置发行包,支持以相比照较朴素的方式完成图形绘制。

    ggplot2:由 RStudio 的首席迷信家 Hadley Wickham 开发,ggplot2 经过一套图形语法支持,支持经过图层叠加以组合的方式支持高度定制的可视化。这一理念也逐渐影响了包括 Plotly、阿里 AntV 等国际外数据可视化处置方案。截至到 2018-08-02,CRAN 曾经落地了 40 个 ggplot2 扩展包,参考 链接 。

    (责任编辑:admin)