PySpark - सीरियल

Serialization का उपयोग Apache Spark पर प्रदर्शन ट्यूनिंग के लिए किया जाता है। सभी डेटा जो नेटवर्क पर भेजे जाते हैं या डिस्क पर लिखे जाते हैं या मेमोरी में बने रहते हैं, उन्हें क्रमबद्ध किया जाना चाहिए। महंगा परिचालन में सीरियलाइजेशन एक महत्वपूर्ण भूमिका निभाता है।

PySpark प्रदर्शन ट्यूनिंग के लिए कस्टम धारावाहिकों का समर्थन करता है। निम्नलिखित दो धारावाहिकों को PySpark द्वारा समर्थित किया जाता है -

MarshalSerializer

पायथन के मार्शल सीरियलाइज़र का उपयोग करके वस्तुओं को सीरियल करता है। यह धारावाहिक अचार से बेहतर है, लेकिन यह कम डेटाैटिप्स का समर्थन करता है।

class pyspark.MarshalSerializer

PickleSerializer

पायथन के अचार सीरीज़ाइज़र का उपयोग करके वस्तुओं को सीरियल करता है। यह धारावाहिक लगभग किसी भी पायथन ऑब्जेक्ट का समर्थन करता है, लेकिन अधिक विशिष्ट धारावाहिकों के रूप में तेज़ नहीं हो सकता है।

class pyspark.PickleSerializer

आइये PySpark क्रमांकन पर एक उदाहरण देखते हैं। यहां, हम मार्शलशरीरलाइज़र का उपयोग करके डेटा को क्रमबद्ध करते हैं।

--------------------------------------serializing.py-------------------------------------
from pyspark.context import SparkContext
from pyspark.serializers import MarshalSerializer
sc = SparkContext("local", "serialization app", serializer = MarshalSerializer())
print(sc.parallelize(list(range(1000))).map(lambda x: 2 * x).take(10))
sc.stop()
--------------------------------------serializing.py-------------------------------------

Command - कमांड इस प्रकार है -

$SPARK_HOME/bin/spark-submit serializing.py

Output - उपरोक्त कमांड का आउटपुट है -

[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]