Вступ

Масштабована обробка даних в R

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

bigmemory

  • Усі дані мають зберігатися на одному диску
  • Дані мають бути подані у вигляді матриці
Масштабована обробка даних в R

iotools

  • Дані можуть мати різні типи, напр., data frames
  • Зберігаються на кількох машинах
  • Обробляє дані «частинами»
Масштабована обробка даних в R

Послідовна обробка по одній частині

  • Обмежує використання ресурсів, керуючи розміром частин
  • Дозволяє переносити результати далі
Масштабована обробка даних в R

Незалежна обробка кожної частини

  • Відповідає підходу split-compute-combine
  • Між частинами не можна ділитися інформацією
  • Дозволяє паралельну та розподілену обробку
Масштабована обробка даних в R

Mapping і Reducing для складніших операцій

# Create a random vector
x <- rnorm(100)
# Find the mean
mean(x)
-0.01996644
# Take the sum of chunks of 
# the vector
sl <- Map(function(v) {
         c(sum(v), length(v))}, 
  list(x[1:25], x[26:100]))

# Add the sums and lengths
slr <- Reduce(`+`, sl)
# Find the mean
slr[1]/slr[2]
-0.01996644
Масштабована обробка даних в R

Не все підходить до Split-Apply-Combine

Операції, що потребують усіх даних одразу, не можна обчислити підходом Split-Apply-Combine.

Приклад: медіана

Масштабована обробка даних в R

Проте…

Багато процедур регресії можна записати у термінах split-apply-combine

Масштабована обробка даних в R

Давайте потренуємось!

Масштабована обробка даних в R

Preparing Video For Download...