# Spark क्या है — Apache Spark: DataFrames से Big Data Processing

Source: https://www.geekswithgeeks.com/hi/spark/sp-what-is

> Spark को वितरित डेटा processing engine के रूप में समझाएँ और बताएँ कि वह databases और Hadoop के पास कहाँ फ़िट बैठता है।

## एक मशीन के लिए बहुत बड़ी processing

**Apache Spark** बड़े datasets को कई मशीनों (या एक मशीन के कई cores) पर समानांतर प्रोसेस करने का open-source engine है। आप उच्च-स्तर के APIs से, Python (**PySpark**), SQL, Scala, Java या R में, बताते हैं कि क्या चाहिए, और Spark डेटा को **partitions** में बाँटता है, **tasks** schedule करता है, विफलताएँ सँभालता है और ज़रूरत पर मशीनों के बीच डेटा ले जाता है। वह जहाँ संभव हो बीच का डेटा **memory में** रखता है, जिससे दोहराव वाले कामों में पुराने Hadoop MapReduce से बहुत तेज़ हुआ। Spark एक ही engine में batch ETL, SQL analytics, machine learning (MLlib) और stream processing को ढकता है। यह database या storage system नहीं है: वह files, object storage, databases या message queues से डेटा पढ़ता है और नतीजे वापस लिखता है।

## Driver योजना बनाता है, executors काम करते हैं

आपका प्रोग्राम (driver) योजना बनाता है; cluster manager executors शुरू करता है; executors डेटा के partitions पर समानांतर tasks चलाते हैं।

![चार हिस्से: driver, cluster manager, executors, डेटा partitions।](assets/figures/spark/section-1-map.svg) — चित्र 1.1 — Driver, cluster manager, executors और partitions।

## चिट्ठियों के पहाड़ को छाँटती टीम

एक क्लर्क को चिट्ठियों का पहाड़ छाँटने में हफ़्ते लगते। मैनेजर उसे थैलों में बाँटता है, थैले कई क्लर्कों को देता है, आंशिक नतीजे इकट्ठे करता और मिलाता है। मैनेजर driver है, क्लर्क executors हैं और थैले partitions हैं।

## छोटे डेटा के लिए Spark न चुनें

आपका डेटा एक मशीन की memory में आराम से आ जाता है (कुछ GB), तो pandas, DuckDB या database सरल और अक्सर तेज़ हैं। Spark शुरू होने का समय और जटिलता जोड़ता है जो बड़े पैमाने पर ही फ़ायदा देती है।

**Quiz:** Spark मुख्य रूप से किसके लिए उपयोग होता है?

- [ ] Web pages डिज़ाइन करना
- [ ] Database की तरह डेटा स्थायी रूप से रखना
- [x] कई cores या मशीनों पर बड़े datasets की समानांतर processing
- [ ] Passwords सँभालना

*Answer:* कई cores या मशीनों पर बड़े datasets की समानांतर processing. Spark compute engine है जो अलग storage से पढ़ता और उसमें लिखता है।
