परिचय

R में Scalable Data Processing

Simon Urbanek

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

bigmemory

  • सारा डेटा एक ही डिस्क पर होना चाहिए
  • डेटा को मैट्रिक्स के रूप में होना चाहिए
R में Scalable Data Processing

iotools

  • डेटा मल्टीपल टाइप्स का हो सकता है, जैसे data frames
  • कई मशीनों पर स्टोर किया जा सकता है
  • डेटा को "chunks" में प्रोसेस करता है
R में Scalable Data Processing

एक समय में एक chunk को क्रम से प्रोसेस करें

  • chunk size नियंत्रित करके रिसोर्स उपयोग सीमित करता है
  • रिजल्ट्स को आगे कैरी-ओवर करने देता है
R में Scalable Data Processing

प्रत्येक chunk को स्वतंत्र रूप से प्रोसेस करें

  • split-compute-combine से मेल खाता है
  • chunks के बीच सूचना साझा नहीं की जा सकती
  • parallel और distributed प्रोसेसिंग संभव करता है
R में Scalable Data Processing

ज्यादा जटिल ऑपरेशंस के लिए 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 में Scalable Data Processing

हर चीज़ Split-Apply-Combine में फिट नहीं बैठती

ऐसे ऑपरेशंस जिन्हें एक साथ सारा डेटा चाहिए, उन्हें Split-Apply-Combine से नहीं निकाला जा सकता।

उदाहरण: Median

R में Scalable Data Processing

परंतु...

कई regression routines को split-apply-combine के रूप में लिखा जा सकता है

R में Scalable Data Processing

अभ्यास करते हैं!

R में Scalable Data Processing

Preparing Video For Download...