Úvod

Škálovatelné zpracování dat v R

Simon Urbanek

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

bigmemory

  • Všechna data musí být uložena na jednom disku
  • Data musí být reprezentována jako matice
Škálovatelné zpracování dat v R

iotools

  • Data mohou mít více typů – tj. datové rámce
  • Uložena napříč více stroji
  • Zpracovává data po „blocích"
Škálovatelné zpracování dat v R

Zpracování po blocích sekvenčně

  • Omezuje spotřebu zdrojů řízením velikosti bloku
  • Umožňuje přenášení výsledků
Škálovatelné zpracování dat v R

Zpracování každého bloku nezávisle

  • Odpovídá přístupu rozděl-vypočítej-kombinuj
  • Bloky nesdílejí žádné informace
  • Umožňuje paralelní a distribuované zpracování
Škálovatelné zpracování dat v R

Mapování a redukce pro složitější operace

# 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
Škálovatelné zpracování dat v R

Ne vše se hodí pro Rozděl-Aplikuj-Kombinuj

Operace vyžadující všechna data najednou nelze vypočítat pomocí přístupu Rozděl-Aplikuj-Kombinuj.

Příklad: Medián

Škálovatelné zpracování dat v R

Nicméně ..

Mnoho regresních procedur lze zapsat pomocí rozděl-aplikuj-kombinuj

Škálovatelné zpracování dat v R

Pojďme cvičit!

Škálovatelné zpracování dat v R

Preparing Video For Download...