क्या R भाषा बिग डेटा के लिए उपयुक्त है


48

R में कई पुस्तकालय हैं जो डेटा विश्लेषण (जैसे JAGS, BUGS, ARULES आदि) के उद्देश्य से हैं, और लोकप्रिय पाठ्यपुस्तकों में इसका उल्लेख किया गया है जैसे: J.Krusche, Doing Bayesian Data Analysis; बी। लैंट्ज़, "मशीन लर्निंग विथ आर"।

मैंने एक डेटासेट के लिए 5TB की एक दिशानिर्देश देखा है जिसे बिग डेटा माना जाता है।

मेरा प्रश्न है: क्या R आमतौर पर बिग डेटा समस्याओं में देखे गए डेटा की मात्रा के लिए उपयुक्त है? क्या डेटासेट के इस आकार के साथ R का उपयोग करते समय नियोजित की जाने वाली रणनीतियाँ हैं?


4
याद रखने के लिए एक अच्छी बात के नीचे दिए गए उत्तरों के अलावा, तथ्य यह है कि बिग डेटा के संबंध में आर से आपको जिन चीजों की ज़रूरत है उनमें से अधिकांश को सारांश डेटा सेट के साथ किया जा सकता है जो कच्चे लॉग की तुलना में बहुत छोटा है। कच्चे लॉग से नमूने भी पार्सिंग लाइनों और एक कच्चे लॉग की लाइनों के सिरदर्द के बिना विश्लेषण के लिए आर का उपयोग करने का एक सहज तरीका प्रदान करता है। उदाहरण के लिए, काम पर एक सामान्य मॉडलिंग कार्य के लिए, मैं मॉडलिंग के लिए उपयोगकर्ता डेटा के 32 ग्राम कच्चे लॉग के 32 ग्राम संक्षेप को कम करने के लिए मानचित्र का उपयोग कम करता हूं।
cwharland

जवाबों:


40

वास्तव में यह चारों ओर आ रहा है। R R in a Nutshell नाम की पुस्तक में R से लेकर Hadoop के साथ बड़े डेटा प्रोसेसिंग के लिए एक सेक्शन भी है। आस-पास कुछ काम हैं जिन्हें करने की आवश्यकता है क्योंकि आर यह सब स्मृति में काम करता है, इसलिए आप मूल रूप से आपके लिए उपलब्ध रैम की मात्रा तक सीमित हैं।

R और Hadoop के लिए एक परिपक्व परियोजना RHadoop है

RHadoop को कई सब-प्रोजेक्ट्स, rhdfs, rhbase, rmr2, plyrmr और quickcheck ( wiki ) में विभाजित किया गया है ।


लेकिन क्या Hadoop के साथ R का उपयोग करने से यह सीमा समाप्त हो जाती है (स्मृति में संगणना करने के लिए)?
फेलिप अल्मीडा

RHadoop इस सीमा को पार करता है। यहाँ ट्यूटोरियल: github.com/RevolutionAnalytics/rmr2/blob/master/docs/… इसे स्पष्ट रूप से बताता है । आपको एक मानचित्रित मानसिकता में स्थानांतरित करने की आवश्यकता है, लेकिन यह हडूप पर्यावरण को आर की शक्ति प्रदान करता है।
स्टीव कैलस्तेड

2
दो नए विकल्प जो ध्यान देने योग्य हैं, वे हैं: SparkR databricks.com/blog/2015/06/09/… और h2o.ai h2o.ai/product दोनों बड़े डेटा के लिए अच्छी तरह से अनुकूल हैं।
वैक्सैक्स

30

बड़े डेटा सेट के लिए R का उपयोग करने में मुख्य समस्या RAM बाधा है। सभी डेटा को रैम में रखने के पीछे तर्क यह है कि यह HDD पर स्टोर करने की तुलना में बहुत तेज़ पहुंच और डेटा जोड़तोड़ प्रदान करता है। यदि आप प्रदर्शन पर एक हिट लेने को तैयार हैं, तो हाँ, आर में बड़े डेटासेट के साथ काम करना काफी व्यावहारिक है ।

  • RODBC पैकेज: डेटा को पुनः प्राप्त करने और संभालने के लिए R से बाहरी DB को जोड़ने की अनुमति देता है। इसलिए, हेरफेर किए जा रहे डेटा को आपकी रैम तक सीमित रखा गया है। समग्र डेटा सेट बहुत बड़ा हो सकता है।
  • Ff पैकेज मेमोरी-मैप किए गए पृष्ठों का उपयोग करके रैम डेटा सेट से अधिक का उपयोग करने की अनुमति देता है।
  • BigLM: यह बड़े डेटा पर सामान्यीकृत रैखिक मॉडल बनाता है। यह डेटा को चंक्स में मेमोरी में लोड करता है।
  • bigmemory: एक R पैकेज जो शक्तिशाली और मेमोरी-कुशल समानांतर विश्लेषण और बड़े पैमाने पर डेटा सेट के डेटा खनन की अनुमति देता है। यह मेमोरी में (रैम पर) बड़ी वस्तुओं (मैटरिस आदि) को स्टोर करने की अनुमति देता है, ताकि वे उन्हें संदर्भित करने के लिए बाहरी पॉइंटर ऑब्जेक्ट का उपयोग कर सकें।

1
एक और पैकेज वितरित किया गया है जो आपको रैम में वितरित फाइलों के साथ काम करने की अनुमति देता है।
एडीसेंटोस

17

कुछ अच्छे जवाब यहाँ। मैं निम्नलिखित तीन नोट्स जोड़कर चर्चा में शामिल होना चाहता हूं :

  1. पर सवाल का जोर डेटा की मात्रा है, जबकि की चर्चा करते हुए बिग डाटा निश्चित रूप से समझ में आता है और वैध है, विशेष रूप से विचार कर समस्या डेटा की मात्रा विकास की outpacing प्रति प्रौद्योगिकीय क्षमता 'घातीय वृद्धि मूर की विधि ( http://en.wikipedia.org/wiki/Moore % 27s_law )।

  2. यह कहते हुए कि, बड़ी डेटा अवधारणा के अन्य पहलुओं के बारे में याद रखना महत्वपूर्ण है। गार्टनर की परिभाषा (जोर मेरा - एबी) के आधार पर : " बिग डेटा उच्च मात्रा , उच्च वेग , और / या उच्च किस्म की जानकारी संपत्ति है जो कि निर्णय लेने, अंतर्दृष्टि खोज और प्रक्रिया अनुकूलन को सक्षम करने के लिए प्रसंस्करण के नए रूपों की आवश्यकता होती है।" (आमतौर पर " 3Vs मॉडल " के रूप में जाना जाता है )। मैं इसका उल्लेख करता हूं, क्योंकि यह डेटा वैज्ञानिकों और अन्य विश्लेषकों को आर पैकेजों को देखने और उपयोग करने के लिए मजबूर करता है जो बड़े डेटा के वॉल्यूम पहलुओं के अलावा अन्य पर ध्यान केंद्रित करते हैं (जो कि विशाल आर पारिस्थितिकी तंत्र की समृद्धि द्वारा सक्षम है )।

  3. हालांकि मौजूदा उत्तर कुछ आर संकुल का उल्लेख करते हैं, बड़े डेटा से संबंधित, अधिक व्यापक कवरेज के लिए , मैं सीआरएएन टास्क व्यू "उच्च प्रदर्शन और समानांतर कम्प्यूटिंग आर के साथ" ( http: //cran.r-project) को संदर्भित करने की सलाह दूंगा। org / web / views / HighPerformanceComputing.html ), विशेष रूप से, वर्गों "समानांतर कंप्यूटिंग: Hadoop" और "बड़ी मेमोरी और आउट-ऑफ-मेमोरी डेटा"


12

आर "बड़े डेटा" के लिए महान है! हालाँकि, ऑपरेटिंग सिस्टम में RAM की मात्रा से R सीमित है (कुछ सरलीकरण के साथ) क्योंकि आपको वर्कफ़्लो की आवश्यकता है। मैं जो दृष्टिकोण लेता हूं वह एक संबंधपरक डेटाबेस के साथ बातचीत करने के लिए है ( RSQLiteSQLite डेटाबेस के साथ बनाने और बातचीत करने के लिए पैकेज देखें ), डेटा की संरचना को समझने के लिए SQL- शैली क्वेरीज़ चलाएँ, और फिर कम्प्यूटेशनल-इंटेंसिव के लिए डेटा के विशेष सबसेट को निकालें सांख्यिकीय विश्लेषण।

यह सिर्फ एक दृष्टिकोण है, हालांकि: ऐसे पैकेज हैं जो आपको अन्य डेटाबेस (जैसे, मोनेट) के साथ बातचीत करने या कम मेमोरी सीमाओं (जैसे, देखें pbdR) के साथ आर में विश्लेषण चलाने की अनुमति देते हैं ।


9

अन्य मानदंडों को ध्यान में रखते हुए, मुझे लगता है कि कुछ मामलों में पायथन का उपयोग करके बिग डेटा के लिए आर से बेहतर हो सकता है। मैं डेटा विज्ञान शैक्षिक सामग्री में आर के व्यापक प्रसार का उपयोग और इसके लिए उपलब्ध अच्छे डेटा विश्लेषण पुस्तकालयों को जानता हूं, लेकिन कभी-कभी यह सिर्फ टीम पर निर्भर करता है।

मेरे अनुभव में, पहले से ही प्रोग्रामिंग से परिचित लोगों के लिए, पायथन का उपयोग आर जैसी भाषा की तुलना में बहुत अधिक लचीलापन और उत्पादकता को बढ़ावा देता है, जो प्रोग्रामिंग भाषा के संदर्भ में पायथन की तुलना में अच्छी तरह से डिज़ाइन और शक्तिशाली नहीं है। मेरे विश्वविद्यालय में एक डाटा माइनिंग कोर्स में साक्ष्य के रूप में, सबसे अच्छा अंतिम प्रोजेक्ट पायथन में लिखा गया था, हालांकि अन्य में आर के समृद्ध डेटा विश्लेषण पुस्तकालय तक पहुंच है। यही है, कभी-कभी अजगर के लिए समग्र उत्पादकता (शिक्षण सामग्री, प्रलेखन आदि पर विचार करते हुए), पायथन के लिए विशेष प्रयोजन डेटा विश्लेषण पुस्तकालयों की कमी में भी आर से बेहतर हो सकता है। इसके अलावा, डेटा साइंस में अजगर की तेज गति को समझाते हुए कुछ अच्छे लेख हैं: पायथन में आर और रिच साइंटिफिक डेटा स्ट्रक्चर को विस्थापित करना वह जल्द ही आर के लिए उपलब्ध पुस्तकालयों का अंतर भर सकता है।

R का उपयोग न करने का एक और महत्वपूर्ण कारण है जब वास्तविक दुनिया बिग डेटा की समस्याओं के साथ काम करना, केवल अकादमिक समस्याओं के विपरीत, डेटा पार्सिंग, सफाई, विज़ुअलाइज़ेशन, वेब स्क्रैपिंग, और बहुत से अन्य जैसे अन्य उपकरणों और तकनीकों की बहुत आवश्यकता है एक सामान्य प्रयोजन प्रोग्रामिंग भाषा का उपयोग करना बहुत आसान है। यह हो सकता है कि कई Hadoop पाठ्यक्रमों में उपयोग की गई डिफ़ॉल्ट भाषा (उदासी के ऑनलाइन पाठ्यक्रम सहित ) पायथन है।

संपादित करें:

हाल ही में DARPA ने बड़ी डेटा नौकरियों के लिए अजगर की डेटा प्रोसेसिंग और विज़ुअलाइज़ेशन क्षमताओं को निधि देने में मदद करने के लिए $ 3 मिलियन का निवेश किया है, जो स्पष्ट रूप से बिग डेटा में पायथन के भविष्य का संकेत है। ( विवरण )


3
आर एक खुशी डेटा हेरफेर के लिए साथ काम करने के (है reshape2, plyrहै, और अब dplyr) और मुझे नहीं लगता कि आप से बेहतर कर सकते हैं ggplot2/ ggvisदृश्य के लिए
जैविक एगेव

@pearpies जैसा कि मेरे उत्तर की शुरुआत में कहा गया था, मैं आर के लिए उपलब्ध अच्छे पुस्तकालयों को स्वीकार करता हूं, लेकिन एक पूरे के रूप में, जब बड़े डेटा के लिए आवश्यक सभी क्षेत्रों पर विचार करना (जो मैंने जवाब में उनमें से कुछ के रूप में कहा है), आर नहीं है पाइथन के लिए उपलब्ध परिपक्व और विशाल पुस्तकालयों के लिए मैच।
अमीर अली अकबरी

1
कॉन्टिनम एनालिटिक्स से पीटर ( ऊपर बताई गई DARPA परियोजना की कंपनियों में से एक ) डेटा विज़ुअलाइज़ेशन के लिए कुछ बहुत ही प्रभावशाली ओपनसोर्स कोड पर काम कर रहा है जो बस उन चीजों को करते हैं जो कोड के अन्य सेट करने में सक्षम नहीं हैं
भूलों

5
यह उत्तर पूरी तरह से महत्वपूर्ण लगता है और शायद ही कहीं से पता चलता है कि आर पायथन के सापेक्ष कमजोर है।
स्टैनकेम

हे भगवान! "मेरे विश्वविद्यालय में एक डेटा माइनिंग कोर्स में साक्ष्य के रूप में, सबसे अच्छा अंतिम प्रोजेक्ट पायथन में लिखा गया था, हालांकि दूसरों के पास आर के समृद्ध डेटा विश्लेषण पुस्तकालय तक पहुंच है।" और आप पाठकों को आपके विश्लेषण का सम्मान करना चाहते हैं? वाह। क्या सबसे अच्छी परियोजना में शामिल कोई अन्य कारक हो सकते हैं जो उस भाषा के अलावा एक अजगर परियोजना है जिसमें इसे लिखा गया था? वास्तव में ....
शॉन मेहान

7

आर बहुत विश्लेषण के लिए महान है। जैसा कि उल्लेख किया गया है, मैपआर, रोडाओप और आरस्टीडियो के स्केलेबल संस्करणों जैसे बड़े डेटा के लिए नए अनुकूलन हैं।

हालाँकि, यदि आपकी चिंता पुस्तकालयों की है, तो अपनी नज़र स्पार्क पर रखें। स्पार्क को बड़े डेटा के लिए बनाया गया था और Hadoop की तुलना में यह बहुत तेज़ है। इसमें मशीन लर्निंग, एसक्यूएल, स्ट्रीमिंग, और ग्राफ लाइब्रेरीज़ काफी विकसित हैं। इस प्रकार बहुत अधिक अनुमति देना अगर सभी भाषाओं (टूलों के साथ, मैं स्कैला को पसंद करता हूं) फ्रेमवर्क के भीतर नहीं किया जाना चाहिए, तो भाषाओं / टूल्स के बीच फेरबदल किए बिना।


4

जैसा कि अन्य उत्तरों में उल्लेख किया गया है, आर को Hadoop और अन्य वितरित कंप्यूटिंग प्लेटफॉर्म के साथ "बिग डेटा" स्तर तक स्केल करने के लिए उपयोग किया जा सकता है। हालाँकि, यदि आप R के लिए विशेष रूप से वचनबद्ध नहीं हैं, लेकिन "R-like" वातावरण का उपयोग करने के इच्छुक हैं, तो Incanter एक परियोजना है जो आपके लिए अच्छी तरह से काम कर सकती है, क्योंकि यह JVM (Clojure पर आधारित) और doesn के लिए मूल है। अपने और हडॉप के बीच "प्रतिबाधा बेमेल" नहीं है जो कि आर के पास है। यह कहना है, इंकेटर से, आप जेएनआई पुल या किसी भी चीज से गुजरने की आवश्यकता के बिना जावा देशी Hadoop / HDFS एपीआई का आह्वान कर सकते हैं।


2

मैं एक विशेषज्ञ से बहुत दूर हूं, लेकिन विषय के बारे में मेरी समझ मुझे बताती है कि आर (आंकड़ों में शानदार) और उदाहरण के लिए पायथन (उन चीजों में से कई में शानदार जहां आर की कमी है) एक दूसरे को काफी अच्छी तरह से पूरक करते हैं (जैसा कि पिछले पोस्ट द्वारा बताया गया है) ।


0

मुझे लगता है कि वास्तव में आर। स्प्लिट्लियर में बड़े डेटा के साथ काम करने के लिए उपकरण का एक पैलेटोरा है जो उस क्षेत्र में एक महान खिलाड़ी होगा। स्पार्कलीआर अपाचे स्पार्क के लिए एक आर इंटरफ़ेस है और स्थानीय और दूरदराज के समूहों के साथ कनेक्शन की अनुमति देता है, जो एक साहसी बैक-एंड प्रदान करता है। एक अपाचे स्पार्क की मशीन लर्निंग लाइब्रेरी पर भी भरोसा कर सकता है। इसके अलावा समानांतर प्रसंस्करण संभव है कई संकुल जैसे कि rmpi और स्नो (उपयोगकर्ता नियंत्रित) या doMC / foreach (सिस्टम आधारित)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.