डेटा हैंडलिंग तकनीकें

PySpark के साथ डेटा क्लीनिंग

Mike Metzger

Data Engineering Consultant

हम क्या पार्स करने की कोशिश कर रहे हैं?

  • गलत/असंगत डेटा
    • खाली पंक्तियाँ
    • कमेंट की गई लाइन्स
    • हेडर
  • नेस्टेड स्ट्रक्चर
    • मल्टीपल डिलिमिटर
  • अनियमित डेटा
    • हर रो में कॉलमों की भिन्न संख्या
  • फोकस: CSV डेटा
width, height, image

# This is a comment
200    300    affenpinscher;0
600    450    Collie;307    Collie;101
600    449    Japanese_spaniel;23
PySpark के साथ डेटा क्लीनिंग

Stanford ImageNet annotations

  • इमेज में कुत्तों की ब्रीड पहचानता है
  • इमेज में मिली सभी ब्रीड्स की सूची देता है
  • अन्य मेटाडेटा (बेस फोल्डर, इमेज साइज, आदि)

उदाहरण रो:

02111277    n02111277_3206    500    375    Newfoundland,110,73,416,298
02108422    n02108422_4375    500    375    bull_mastiff,101,90,214,356 \
 bull_mastiff,282,74,416,370
PySpark के साथ डेटा क्लीनिंग

खाली लाइन्स, हेडर, और कमेंट हटाना

Spark का CSV पार्सर:

  • खाली लाइनों को अपने-आप हटाता है
  • वैकल्पिक आर्ग्युमेंट से कमेंट हटा सकता है
df1 = spark.read.csv('datafile.csv.gz', comment='#')
  • हेडर फील्ड संभालता है
    • आर्ग्युमेंट से परिभाषित
    • स्कीमा दिया हो तो इन्हें इग्नोर करता है
df1 = spark.read.csv('datafile.csv.gz', header='True')
PySpark के साथ डेटा क्लीनिंग

ऑटोमैटिक कॉलम क्रिएशन

Spark यह करेगा:

  • sep आर्ग्युमेंट के आधार पर DataFrame में कॉलम अपने-आप बनाएगा
    df1 = spark.read.csv('datafile.csv.gz', sep=',')
    
  • डिफॉल्ट , यूज़ करता है
  • यदि स्ट्रिंग में sep न हो, तब भी पार्स कर सकता है
    df1 = spark.read.csv('datafile.csv.gz', sep='*')
    
  • डेटा _c0 नाम के डिफॉल्ट कॉलम में रखता है
  • नेस्टेड सेपरेटर सही तरह हैंडल करने देता है
PySpark के साथ डेटा क्लीनिंग

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

PySpark के साथ डेटा क्लीनिंग

Preparing Video For Download...