Giới thiệu

Xử lý dữ liệu có khả năng mở rộng trong R

Simon Urbanek

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

bigmemory

  • Mọi dữ liệu phải lưu trên một ổ đĩa
  • Dữ liệu phải biểu diễn dạng ma trận
Xử lý dữ liệu có khả năng mở rộng trong R

iotools

  • Dữ liệu có thể nhiều kiểu — ví dụ, data frame
  • Lưu trên nhiều máy
  • Xử lý dữ liệu theo "khối"
Xử lý dữ liệu có khả năng mở rộng trong R

Xử lý tuần tự từng khối một

  • Giới hạn tài nguyên bằng cách kiểm soát kích thước khối
  • Cho phép mang theo kết quả giữa các bước
Xử lý dữ liệu có khả năng mở rộng trong R

Xử lý độc lập từng khối

  • Tương ứng với tách-tính-kết hợp
  • Không thể chia sẻ thông tin giữa các khối
  • Cho phép xử lý song song và phân tán
Xử lý dữ liệu có khả năng mở rộng trong R

Mapping và Reducing cho các phép phức tạp hơn

# 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
Xử lý dữ liệu có khả năng mở rộng trong R

Không phải mọi thứ đều hợp với Tách-Áp dụng-Kết hợp

Các phép toán cần toàn bộ dữ liệu cùng lúc thì không thể dùng cách Tách-Áp dụng-Kết hợp.

Ví dụ: Median

Xử lý dữ liệu có khả năng mở rộng trong R

Tuy vậy..

Nhiều thủ tục hồi quy có thể viết theo cách tách-áp dụng-kết hợp

Xử lý dữ liệu có khả năng mở rộng trong R

Cùng luyện tập nào!

Xử lý dữ liệu có khả năng mở rộng trong R

Preparing Video For Download...