कैशिंग

Python में Spark SQL परिचय

Mark Plutowski

Data Scientist

कैशिंग क्या है?

  • डेटा को मेमोरी में रखना
  • Spark अक्सर मेमोरी को आक्रामक रूप से खाली करता है
Python में Spark SQL परिचय

इविक्शन पॉलिसी

  • Least Recently Used (LRU)
  • इविक्शन हर worker पर स्वतंत्र रूप से होता है
  • यह प्रत्येक worker की उपलब्ध मेमोरी पर निर्भर है
Python में Spark SQL परिचय

Dataframe को cache करना

किसी dataframe को cache करने के लिए:
df.cache()
उसे uncache करने के लिए:
df.unpersist()
Python में Spark SQL परिचय

जाँचें कि dataframe cached है या नहीं

df.is_cached
False
df.cache()
df.is_cached
True
Python में Spark SQL परिचय

Dataframe को uncache करना

df.unpersist()
df.is_cached()
False
Python में Spark SQL परिचय

स्टोरेज लेवल

df.unpersist()
df.cache()
df.storageLevel
StorageLevel(True, True, False, True, 1)

ऊपर दिए storage level में ये मान हैं:

  1. useDisk = True
  2. useMemory = True
  3. useOffHeap = False
  4. deserialized = True
  5. replication = 1
Python में Spark SQL परिचय

Dataframe को persist करना

Spark 2.1+ में निम्न सब समान हैं:

  • df.persist()

  • df.persist(storageLevel=pyspark.StorageLevel.MEMORY_AND_DISK)

  • df.cache() वही है जो df.persist()

Python में Spark SQL परिचय

टेबल को cache करना

df.createOrReplaceTempView('df')
spark.catalog.isCached(tableName='df')
False
spark.catalog.cacheTable('df')
spark.catalog.isCached(tableName='df')
True
Python में Spark SQL परिचय

टेबल को uncache करना

spark.catalog.uncacheTable('df')
spark.catalog.isCached(tableName='df')
False
spark.catalog.clearCache()
Python में Spark SQL परिचय

टिप्स

  • Caching लेज़ी होता है
  • केवल तभी cache करें जब एक से अधिक ऑपरेशन चलाने हों
  • जब ऑब्जेक्ट की ज़रूरत न रहे तो unpersist करें
  • चयनात्मक रूप से cache करें
Python में Spark SQL परिचय

अभ्यास करते हैं!

Python में Spark SQL परिचय

Preparing Video For Download...