什么是可扩展的数据处理?

R 的可扩展数据处理

Michael J. Kane and Simon Urbanek

Instructors, DataCamp

本课程将学习..

  • 处理超出本机内存的数据
  • 编写可扩展代码
  • 分块导入与处理数据
R 的可扩展数据处理

内存(RAM)

所有 R 对象都存储在内存(RAM)中

R 的可扩展数据处理

R 的可扩展数据处理

变量能有多大?

"当数据超过计算机内存的 10–20% 时,R 并不适合处理。"——《R 安装与管理手册》

R 的可扩展数据处理

交换效率低

  • 内存不足时,数据会被换出到磁盘
  • 由于磁盘远慢于内存,执行时间会增加
R 的可扩展数据处理

可扩展方案

  • 将子集载入内存
  • 处理该子集
  • 保留结果并丢弃子集
R 的可扩展数据处理

为什么代码很慢?

  • 计算复杂度

  • 谨慎处理磁盘操作以编写快速、可扩展的代码

R 的可扩展数据处理

性能基准测试

library(microbenchmark)

microbenchmark( rnorm(100), rnorm(10000) )
Unit: microseconds
         expr    min      lq     mean  median      uq     max neval
   rnorm(100)   7.84   8.440   9.5459   8.773   9.355   29.56   100
 rnorm(10000) 679.51 683.706 755.5693 690.876 712.416 2949.03   100
R 的可扩展数据处理

Passons à la pratique !

R 的可扩展数据处理

Preparing Video For Download...