Pyspark में स्पार्क के निष्पादन के लिए दो घटकों को एक साथ काम करने की आवश्यकता होती है:
pyspark
अजगर पैकेज
- एक जेवीएम में स्पार्क का उदाहरण
स्पार्क-सबमिट या pyspark के साथ चीजों को लॉन्च करते समय, ये स्क्रिप्ट दोनों का ध्यान रखेगी, अर्थात वे आपके PYTHONPATH, PATH, इत्यादि को सेट करेंगे, ताकि आपकी स्क्रिप्ट pyspark को खोज सके, और वे स्पार्क उदाहरण को भी शुरू कर दें, जो आपके params के अनुसार कॉन्फ़िगर हो रहा है , जैसे - मास्टर एक्स
वैकल्पिक रूप से, इन लिपियों को दरकिनार करना और अपने स्पार्क एप्लिकेशन को सीधे अजगर इंटरप्रेटर की तरह चलाना संभव है python myscript.py
। यह विशेष रूप से दिलचस्प है जब स्पार्क स्क्रिप्ट अधिक जटिल होने लगते हैं और अंततः अपने स्वयं के आर्ग्स प्राप्त करते हैं।
- सुनिश्चित करें कि पायसपार्क पैकेज पायथन दुभाषिया द्वारा पाया जा सकता है। जैसा कि पहले ही चर्चा की गई है कि या तो स्पाय / पाइथन डायर को PYTHONPATH में जोड़ें या सीधे पिपपार्क को पिप इंस्टॉल का उपयोग करके इंस्टॉल करें।
- अपनी स्क्रिप्ट से स्पार्क उदाहरण के पैरामीटर सेट करें (जो कि pyspark को पास किया जाता था)।
- स्पार्क कॉन्फ़िगरेशन के लिए जैसा कि आप सामान्य रूप से सेट करते हैं --conf वे SparkSession.builder.config में एक कॉन्फिग ऑब्जेक्ट (या स्ट्रिंग कॉन्फिग) के साथ परिभाषित होते हैं
- मुख्य विकल्पों (जैसे - मास्टर, या -ड्राइवर-मेम) के लिए आप उन्हें PYSPARK_SUBMIT_ARGS पर्यावरण चर पर लिखकर सेट कर सकते हैं। चीजों को साफ करने और सुरक्षित बनाने के लिए आप इसे पायथन के भीतर से ही सेट कर सकते हैं, और स्पार्क इसे शुरू करते समय पढ़ेंगे।
- उदाहरण शुरू करें, जिसके लिए आपको
getOrCreate()
बिल्डर ऑब्जेक्ट से कॉल करना होगा ।
इसलिए आपकी स्क्रिप्ट कुछ इस तरह हो सकती है:
from pyspark.sql import SparkSession
if __name__ == "__main__":
if spark_main_opts:
# Set main options, e.g. "--master local[4]"
os.environ['PYSPARK_SUBMIT_ARGS'] = spark_main_opts + " pyspark-shell"
# Set spark config
spark = (SparkSession.builder
.config("spark.checkpoint.compress", True)
.config("spark.jars.packages", "graphframes:graphframes:0.5.0-spark2.1-s_2.11")
.getOrCreate())