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

    RStudio 经过 rmarkdown + knitr 的方式提供了一套基于文学编程的数据剖析报告产出方案,开发者可以将 R 代码嵌入 Markdown 文档中执行并失掉渲染结果(渲染结果可以是 HTML、PDF、Word 文档格式),实践数据剖析进程中,开发者最终能构成一套数据剖析模版,每次适配不同的数据,就能产出一份新的数据剖析报告。

    rmarkdown 本身具有复杂的页面规划才能并可以运用 flexdashboard 停止扩展,因此这套方案不只能完成重复性剖析进程,还能完成剖析结果的高度定制化展现,可以运用 HTML、CSS、JavaScript 前端三大件对数据剖析报告停止展现和交互的细节调整。最终完成人力的节省和数据剖析结果的快速、高效产出。

    四、R 效劳化改造

    4.1 R 效劳化框架

    R 本身既是一门言语、也是一个跨平台的操作环境,具有弱小的数据处置、数据剖析、和数据可视化才能。除了在团体电脑的 Windows/MacOS 环境中上充任团体统计剖析工具外,也可以运转在 Linux 效劳环境中,因此可以将 R 作为剖析展现引擎,中心经过 Java 等系统开发言语完成缓存、安全反省、权限控制等功用,开发企业报表系统或数据剖析(开掘)框架,而不只仅只是将 R 作为一个桌面软件。

    企业报表系统或数据剖析(开掘)框架设计方案如下图所示:

    美团R言语数据运营实战


    图二 R 效劳化框架

    4.2 foreach + doParallel 多核并行方案

    作为一门统计学家开发的解释性言语,R 运转的是 CPU 单核上的单线程顺序、并且需求将全部数据加载到内存停止处置,因此和 Java、Python 等系统言语相比,计算功用是 R 的软肋。关于大数据集合的计算场景,需求尽量将数据计算部分经过 Hive、Kylin 等散布式计算引擎完成,尽量让 R 只处置结果数据集;另外也可以经过 doParallel + foreach 方案,经过多核并行提升计算效率,代码示例如下:

    library(doParallel) 

    library(foreach) 

    registerDoParallel(cores = detectCores()) 

     

    vis_process1  <- function() { 

        # 可视化进程1 ... 

    vis_process2  <- function() { 

        # 可视化进程2 ... 

    data_process1 <- function() { 

        # 数据处置进程1 ... 

    data_process2 <- function() { 

        # 数据处置进程2 ... 

     

    processes <- c('vis_process1''vis_process2''data_process1''data_process2'

    process_res <- foreach(i = 1:length(process), .packages = c('magrittr')) %dopar% { 

        do.call(processes[i], list()) 

     

    vis_process1_res  <- process_res[[1]] 

    vis_process2_res  <- process_res[[2]] 

    data_process1_res <- process_res[[3]] 

    data_process2_res <- process_res[[4]] 

    4.3 图形化数据报告渲染功用

    在数据剖析进程中,R 最重要的是充任图形引擎的角色,因此有必要了解其图形渲染功用。针对主流的基于 rmarkdown + flexdashboard 的数据剖析报告渲染方案,其功用测试结果如下:

    系统环境:

    4 核 CPU,8 G 内存,2.20GHz 主频。

    Linux version 3.10.0-123.el7.x86_64。

    测试办法:

    测试在不同并发度下、不同复杂度的渲染形式下,重复渲染 100 次的耗时。

    测试结果:

    美团R言语数据运营实战

    依据测试结果可知:

    单运用平均渲染时长在 0.74s 以上,详细的渲染时长视计算复杂度而定(可以经过上节引见的“foreach + doParallel 多核并行方案 ”加快处置进程)。依据阅历,大部分运用能在秒级完成渲染。

    (责任编辑:admin)