Proiectul Bigmemory

Procesarea scalabilă a datelor în R

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory este utilizat pentru stocarea, manipularea și procesarea matricelor de mari dimensiuni, care pot depăși RAM-ul disponibil

Procesarea scalabilă a datelor în R

big.matrix

  • Creare
  • Recuperare
  • Subset
  • Sumarizare
Procesarea scalabilă a datelor în R

Ce înseamnă „out-of-core"?

  • Obiectele R sunt păstrate în RAM

  • Când RAM-ul se epuizează

    • Datele sunt mutate pe disc
    • Programele continuă (lent) sau se blochează

Este preferabil să se încarce datele în RAM doar atunci când sunt necesare pentru procesare.

Procesarea scalabilă a datelor în R

Când se utilizează big.matrix?

  • 20% din dimensiunea RAM-ului
  • Matrice dense
Procesarea scalabilă a datelor în R

Prezentare generală bigmemory

  • bigmemory implementează tipul de date big.matrix, utilizat pentru crearea, stocarea, accesarea și manipularea matricelor de pe disc

  • Datele sunt păstrate pe disc și transferate în RAM în mod implicit

Procesarea scalabilă a datelor în R

Prezentare generală bigmemory

Un obiect big.matrix:

  • Trebuie importat o singură dată
  • Fișier de tip „backing"
  • Fișier de tip „descriptor"
Procesarea scalabilă a datelor în R

Exemplu cu bigmemory

library(bigmemory)

# Create a new big.matrix object x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
Procesarea scalabilă a datelor în R

Fișierele backing și descriptor

  • fișier backing: reprezentarea binară a matricei pe disc
  • fișier descriptor: conține metadate (număr de rânduri, coloane, nume etc.)
Procesarea scalabilă a datelor în R

Exemplu cu bigmemory

# See what's in it
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
Procesarea scalabilă a datelor în R

Asemănări cu matricele

# Change the value in the first row and column
x[1, 1] <- 3
# Verify the change has been made
x[,]
   3    0    0
Procesarea scalabilă a datelor în R

Să exersăm!

Procesarea scalabilă a datelor în R

Preparing Video For Download...