क्या अजगर बड़े डेटा के लिए उपयुक्त है


14

मैंने इस पोस्ट में पढ़ा कि क्या बिग डेटा के लिए R भाषा उपयुक्त है जो बड़ा डेटा बनाता है 5TB, और जबकि यह इस प्रकार के डेटा के साथ काम करने की व्यवहार्यता के बारे में जानकारी प्रदान करने का एक अच्छा काम Rकरता है Python। मैं सोच रहा था कि क्या Pythonयह इतना डेटा के साथ भी काम कर सकता है।

जवाबों:


18

स्पष्ट करने के लिए, मैं महसूस करता हूं कि ओपी द्वारा मूल प्रश्न संदर्भ शायद एसओ-प्रकार के प्रारूप के लिए सबसे अच्छा नहीं है, लेकिन मैं निश्चित रूप pythonसे इस विशेष मामले में प्रतिनिधित्व करूंगा ।

मुझे केवल यह कहकर प्रारंभ करें कि आपके डेटा आकार की परवाह किए बिना, pythonआपका सीमित कारक नहीं होना चाहिए। वास्तव में, कुछ मुख्य मुद्दे हैं जो आप बड़े डेटासेट से निपटने जा रहे हैं:

  • डेटा को मेमोरी में पढ़ना - यह बड़े डेटा की दुनिया में अब तक का सबसे आम मुद्दा है। मूल रूप से, आप के लिए मेमोरी (RAM) की तुलना में अधिक डेटा नहीं पढ़ सकते हैं। इसे ठीक करने का सबसे अच्छा तरीका एक बार में सब कुछ पढ़ने की कोशिश करने के बजाय अपने डेटा पर परमाणु संचालन करना है।
  • डेटा संग्रहीत करना - यह वास्तव में पहले के मुद्दे का सिर्फ एक और रूप है, जिस समय तक उठने के बाद 1TB, आपको भंडारण के लिए कहीं और देखना होगा। AWS S3 सबसे आम संसाधन है, और pythonइसमें botoडेटा के बड़े टुकड़ों के साथ अग्रणी की सुविधा के लिए शानदार पुस्तकालय है।
  • नेटवर्क विलंबता - विभिन्न सेवाओं के बीच डेटा स्थानांतरित करना आपकी अड़चन बनने वाला है। सह-स्थित संसाधनों को लेने और दीवार में प्लग करने की कोशिश के अलावा, आप इसे ठीक करने के लिए एक बड़ी राशि नहीं कर सकते।

13

बिग डेटा के साथ काम करते समय आपको कुछ बातें समझने की ज़रूरत है -

बिग डेटा क्या है?

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

यदि डेटा की बड़ी मात्रा के साथ काम कर रहे हैं:

  • सुअर / छत्ता / शार्क - डेटा सफाई और ETL काम करते हैं
  • Hadoop / Spark - वितरित समानांतर कंप्यूटिंग
  • महावत / एमएल-लिब - मशीन लर्निंग

अब, आप मध्यवर्ती चरणों में आर / पायथन का उपयोग कर सकते हैं, लेकिन आपको एहसास होगा कि वे आपकी पूरी प्रक्रिया में अड़चन बन जाते हैं।

यदि डेटा के वेग के साथ काम कर रहा है:

  • काफ्का / तूफान - उच्च थ्रूपुट प्रणाली

लोग यहां आर / पायथन की कोशिश कर रहे हैं, लेकिन फिर से यह उस तरह की समानता पर निर्भर करता है जो आप चाहते हैं और आपकी मॉडल जटिलता।

आप किस तरह का विश्लेषण करना चाहते हैं?

यदि आपका मॉडल संपूर्ण डेटा को पहले मेमोरी में लाने की मांग करता है तो आपका मॉडल जटिल नहीं होना चाहिए क्योंकि यदि मध्यवर्ती डेटा बड़ा है तो कोड टूट जाएगा। और अगर आप इसे डिस्क में लिखने के बारे में सोचते हैं तो आपको अतिरिक्त देरी का सामना करना पड़ेगा क्योंकि रैम की तुलना में डिस्क रीड / राइट धीमा है।

निष्कर्ष

आप बिग डेटा स्पेस में निश्चित रूप से अजगर का उपयोग कर सकते हैं (निश्चित रूप से, चूंकि लोग आर के साथ प्रयास कर रहे हैं, क्यों नहीं पायथन) लेकिन पहले अपने डेटा और व्यवसाय की आवश्यकता को जानें। उसी के लिए बेहतर उपकरण उपलब्ध हो सकते हैं और हमेशा याद रखें:

आपके उपकरण यह निर्धारित नहीं करना चाहिए कि आप प्रश्नों का उत्तर कैसे देते हैं। आपके प्रश्नों को यह निर्धारित करना चाहिए कि आप कौन से उपकरण का उपयोग करते हैं।


8

पायथन में बड़े डेटा के साथ काम करने के लिए कुछ बहुत अच्छे उपकरण हैं:

numpy

Numpy की मेमरी-मैप्ड सरणियाँ आपको डिस्क पर सहेजी गई फ़ाइल को एक्सेस करने देती हैं, हालाँकि यह एक सरणी थी। केवल सरणी के कुछ हिस्सों को आप सक्रिय रूप से मेमोरी में लोड करने की आवश्यकता के साथ काम कर रहे हैं। यह एक साधारण सरणी के रूप में बहुत ज्यादा इस्तेमाल किया जा सकता है।

h5py और pytables

ये दो पुस्तकालय HDF5 फाइलों तक पहुंच प्रदान करते हैं। ये फाइलें डेटा के सिर्फ हिस्से तक पहुंच देती हैं। इसके अलावा, डेटा का उपयोग करने के लिए उपयोग किए जाने वाले अंतर्निहित पुस्तकालयों के लिए धन्यवाद, कई गणितीय संचालन और डेटा के अन्य जोड़तोड़ इसे अजगर डेटा संरचना में लोड किए बिना किया जा सकता है। बड़े पैमाने पर, अत्यधिक संरचित फाइलें संभव हैं, 5 टीबी से बहुत बड़ी हैं। यह निर्बाध, दोषरहित संपीड़न की भी अनुमति देता है।

डेटाबेस

विभिन्न प्रकार के डेटाबेस हैं जो आपको बड़े डेटा सेटों को स्टोर करने और उन हिस्सों को लोड करने की अनुमति देते हैं जिनकी आपको ज़रूरत है। कई डेटाबेस आपको डेटा को बिना अजगर डेटा संरचना में लोड किए बिना हेरफेर करने की अनुमति देते हैं।

पांडा

यह HDF5 डेटा, सीएसवी फाइलें, डेटाबेस, यहां तक ​​कि वेबसाइटों सहित विभिन्न प्रकार के डेटा तक उच्च-स्तरीय पहुंच की अनुमति देता है। बड़े डेटा के लिए, यह एचडीएफ 5 फ़ाइल एक्सेस के आसपास रैपर प्रदान करता है जो बड़े डेटा सेट पर विश्लेषण करना आसान बनाता है।

mpi4py

यह कई प्रोसेसर या कई कंप्यूटरों में वितरित तरीके से अपने अजगर कोड को चलाने के लिए एक उपकरण है। इससे आप अपने डेटा के हिस्सों पर एक साथ काम कर सकते हैं।

dask

यह सामान्य खसरा सरणी का एक संस्करण प्रदान करता है जो बहु-कोर तरीके से कई सामान्य खस्ता संचालन का समर्थन करता है जो स्मृति में फिट होने के लिए डेटा पर बहुत बड़ा काम कर सकता है।

ज्वाला

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


4

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


3

डेटा की इतनी मात्रा को संभालने के लिए, प्रोग्रामिंग भाषा मुख्य चिंता का विषय नहीं है, लेकिन प्रोग्रामिंग फ्रेमवर्क है। MapReduce या Spark जैसे फ्रेमवर्क में पायथन सहित कई भाषाओं में बाइंडिंग है। इन रूपरेखाओं में निश्चित रूप से डेटा विश्लेषण कार्यों के लिए कई तैयार-से-उपयोग पैकेज हैं। लेकिन अंत में यह सब आपकी आवश्यकता पर आता है, यानी आपका काम क्या है? लोगों के पास डेटा विश्लेषण कार्यों की विभिन्न परिभाषाएं हैं, उनमें से कुछ को रिलेशनल डेटाबेस के साथ आसानी से हल किया जा सकता है। उस स्थिति में, SQL अन्य सभी विकल्पों की तुलना में बहुत बेहतर है।


2

मेरा मानना ​​है कि भाषा का प्रदर्शन क्षमताओं से बहुत कम संबंध है, जब बड़े डेटा की बात आती है। क्या मायने रखता है:

  • डेटा वास्तव में कितना बड़ा है
  • आप इस पर क्या प्रदर्शन करने जा रहे हैं
  • आप किस हार्डवेयर का उपयोग करने जा रहे हैं
  • वे विशिष्ट लाइब्रेरी कौन सी हैं जिनका आप उपयोग करने की योजना बना रहे हैं

वैसे भी, पायथन अच्छी तरह से डेटा विज्ञान समुदायों में अपनाया जाता है।


2

मैं एनाकोंडा पायथन 3.4 और पंडों का उपयोग कर रहा हूं ताकि लॉगिन क्रेडेंशियल्स के 20K से मिलान करने के लिए 10M पंक्ति डेटाबेस की खोज की जा सके। लगभग एक मिनट लगता है। पांडा इंटर्नल मेमोरी का बहुत उपयोग करते हैं। उस ने कहा, सही मायने में बड़े डेटा के लिए समस्या से मेल खाने वाले प्रसंस्करण वास्तुकला की आवश्यकता होती है। पंडों इस समीकरण में सिर्फ गोंद (तर्क) है, और अन्य उपकरण भी ऐसा कर सकते हैं। आर, स्काला, हास्केल, एसएएस, आदि कुछ तर्क को दोहरा सकते हैं - शायद बस सवालों का तेजी से जवाब देने के लिए पर्याप्त है। लेकिन अजगर एक अच्छा (सबसे अच्छा?) सामान्य प्रयोजन उपकरण बनाता है। आप अजगर में आर कोड को चला सकते हैं, साथ ही साथ अन्य भाषाओं में भी। हालांकि व्याख्यात्मक, उच्च प्रदर्शन तकनीक और उपकरण हैं जैसे कि पिपी जो केवल थोड़े अधिक प्रयास के साथ पायथन टूल के रूप में तेजी से रन बना सकते हैं। और अजगर के पास कई पुस्तकालय हैं जो हर चीज के बारे में करते हैं - ऊपर की सूची देखें।

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


0

यह मजेदार है कि लोग डेटा साइंस और बिजनेस इंटेलिजेंस के साथ बड़ा डेटा कैसे मिलाते हैं।

सबसे पहले, बड़े डेटा का अर्थ है "बहुत सारा डेटा", इतनी जानकारी कि यह एक पारंपरिक डेटाबेस में फिट नहीं होता है। हालांकि, कभी-कभी बड़े डेटा भी उचित "मूल्य" जानकारी नहीं है, लेकिन दस्तावेजों, छवियों और इतने पर।

इसलिए, बड़े डेटा को प्रोसेस करने के लिए, हमें स्पीड की आवश्यकता है। पायथन लीग से बाहर है, इसलिए आर। हालांकि, यदि कार्य सीएसवी लेने और डेटाबेस में सम्मिलित करने के लिए उतना आसान है, तो यह ईटीएल है, हमें ऐसा करने के लिए प्रोग्रामिंग की आवश्यकता नहीं है।

और जब जानकारी कम हो जाती है, तो हम अजगर, आर या जो भी आप चाहते हैं, लागू कर सकते हैं। यहां तक ​​कि एक्सेल भी। हालाँकि, इस चरण में, बिग डेटा अब बड़ा नहीं है, लेकिन पारंपरिक डेटा है।

IMHO, जावा बिग डेटा (पूरी श्रृंखला के लिए) के लिए अधिक उपयुक्त है लेकिन लोग कुछ अनौपचारिक कारण के लिए पाइथन को डिफ़ॉल्ट रूप से लेते हैं।

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