Spark DataFrames पर और जानकारी

PySpark परिचय

Benjamin Schmidt

Data Engineer

विभिन्न डेटा सोर्स से DataFrames बनाना

  • CSV फ़ाइलें: संरचित, डिलिमिटेड डेटा के लिए आम
  • JSON फ़ाइलें: सेमी-स्ट्रक्चर्ड, हाइरार्किकल फ़ॉर्मेट
  • Parquet फ़ाइलें: स्टोरेज और क्वेरी के लिए ऑप्टिमाइज़्ड, डेटा इंजीनियरिंग में आम
  • उदाहरण:
    spark.read.csv("path/to/file.csv")
    
  • उदाहरण:
    spark.read.json("path/to/file.json")
    
  • उदाहरण:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
PySpark परिचय

स्कीमा इनफ़रेंस और मैन्युअल स्कीमा डेफिनिशन

  • Spark inferSchema=True से डेटा से स्कीमा अपने-आप निकाल सकता है

  • बेहतर नियंत्रण के लिए स्कीमा मैन्युअली परिभाषित करें - फिक्स्ड डेटा स्ट्रक्चर में उपयोगी

Schema at Scale

PySpark परिचय

PySpark DataFrames में DataTypes

  • IntegerType: पूर्णांक संख्याएँ
    • जैसे, 1, 3478, -1890456
  • LongType: बड़े पूर्णांक
    • जैसे, 8-बाइट साइन किए गए नंबर, 922334775806
  • FloatType और DoubleType: दशमलव मानों के लिए फ्लोटिंग-पॉइंट नंबर
    • जैसे, 3.14159
  • StringType: टेक्स्ट या स्ट्रिंग डेटा के लिए
    • जैसे, "This is an example of a string."
  • ...
PySpark परिचय

PySpark DataFrames के लिए DataTypes सिंटैक्स

# आवश्यक टाइप्स को क्लास के रूप में इम्पोर्ट करें
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

# स्कीमा बनाएँ
schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("scores", ArrayType(IntegerType()), True)
])

# स्कीमा सेट करें
df = spark.createDataFrame(data, schema=schema)
PySpark परिचय

DataFrame ऑपरेशंस - चयन और फ़िल्टरिंग

  • चुनिंदा कॉलम के लिए .select() इस्तेमाल करें
  • शर्तों के आधार पर रो फ़िल्टर करने के लिए .filter() या .where() इस्तेमाल करें
  • कई कॉलम से ऑर्डर करने के लिए .sort() इस्तेमाल करें
# सिर्फ name और age कॉलम चुनें और दिखाएँ
df.select("name", "age").show()
# age > 30 पर फ़िल्टर करें
df.filter(df["age"] > 30).show()
# किसी खास मान पर फ़िल्टर करने के लिए where का प्रयोग
df.where(df["age"] == 30).show()
# age पर सॉर्ट करें
df.sort("age", ascending=False).show()
PySpark परिचय

Sorting और मिसिंग वैल्यू हटाना

  • .sort() या .orderBy() से डेटा ऑर्डर करें
  • na.drop() से null मान वाली पंक्तियाँ हटाएँ
# age कॉलम से सॉर्ट करें
df.sort("age", ascending=False).show()

# मिसिंग वैल्यू हटाएँ
df.na.drop().show()

PySpark परिचय

Cheatsheet

  • spark.read_json(): JSON से डेटा लोड करें
  • spark.read.schema(): स्कीमा स्पष्ट रूप से परिभाषित करें
  • .na.drop(): मिसिंग वैल्यू वाली पंक्तियाँ हटाएँ
  • .select(), .filter(), .sort(), .orderBy(): बेसिक डेटा मैनिपुलेशन फंक्शन
PySpark परिचय

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

PySpark परिचय

Preparing Video For Download...