یادداشت های مطالعه دوره اصول DLT: درس 7 بازرسی و تنظیم طرحواره

در بسیاری از چارچوب های پردازش داده (مانند Apache Spark یا حتی هنگام کار با پاندا در پایتون) ، الف طرح به عنوان یک طرح برای داده های شما خدمت می کند. این ساختار را با مشخص کردن تعریف می کند:
- نام ستون
- انواع داده ها (به عنوان مثال ، عدد صحیح ، رشته ، شناور)
- باطل بودن (آیا یک ستون می تواند حاوی مقادیر تهی باشد)
درک ، بازرسی و – در صورت لزوم – تنظیم این طرح برای اطمینان از کیفیت داده ها ، جلوگیری از خطاهای زمان اجرا و بهینه سازی عملکرد بسیار مهم است.
2. درک طرحواره
طرحواره چیست؟
- تعریف: طرحواره یک نمایش ساختاری از مجموعه داده است. این نوع داده هر ستون و ابرداده های دیگر را توصیف می کند.
-
اهمیت:
- یکپارچگی داده ها: انواع داده های صحیح را اجرا می کند.
- اعتبار سنجی: اگر داده های ورودی با فرمت مورد انتظار مطابقت نداشته باشند ، زود هنگام خطاها را به دست می آورید.
- بهینه سازی: به چارچوب هایی مانند Spark اجازه می دهد تا اجرای کارآمد را برنامه ریزی کنند.
چه زمانی نیاز به تنظیم یک طرحواره دارید؟
- تنوع منبع داده: گاهی اوقات منبع داده ممکن است انواع متناقض داشته باشد (به عنوان مثال ، ستونی که به عنوان یک عدد صحیح در نظر گرفته می شود شامل مقادیر رشته ای است).
- عملکرد: استنباط طرحواره به طور خودکار می تواند وقت گیر باشد ، به خصوص با مجموعه داده های بزرگ. ارائه یک طرح صریح می تواند سرعت بارگیری داده ها را سرعت بخشد.
- الزامات تجاری: تغییر نام یا انواع ستون برای پاسخگویی به نیازهای گزارشگری یا تجزیه و تحلیل.
3. بازرسی از طرحواره
قبل از انجام هرگونه تحول یا تجزیه و تحلیل ، بازرسی از طرح داده های داده یا مجموعه داده شما ضروری است.
روشهای بازرسی:
-
Apache Spark:
-
df.printSchema()
نمایش درختی از طرح را چاپ می کند ، نام ، نوع ، و اینکه آیا می تواند تهی باشد ، نشان می دهد.
-
df.schema
شیء طرحواره را باز می گرداند ، که می تواند به صورت برنامه ای مورد بازرسی قرار گیرد.
-
-
پاندا:
-
df.info()
خلاصه ای مختصر از DataFrame ، از جمله انواع داده ها و تعداد غیر تهی را ارائه می دهد.
-
df.dtypes
نوع داده هر ستون را نشان می دهد.
-
مثال در جرقه:
# Assuming df is your Spark DataFrame
df.printSchema()
خروجی ممکن است به نظر برسد:
root
|-- id: integer (nullable = true)
|-- name: string (nullable = true)
|-- age: integer (nullable = true)
4. تنظیم طرحواره
بعضی اوقات طرح استنباط شده از داده ها برای تجزیه و تحلیل شما ایده آل نیست. تنظیم طرحواره می تواند شامل موارد زیر باشد:
الف) تعریف یک طرح صریح هنگام خواندن داده ها
ارائه یک طرح صریح می تواند اطمینان حاصل کند که داده ها به درستی خوانده می شوند و عملکرد را بهبود می بخشند.
مثال در جرقه:
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
# Define the explicit schema
schema = StructType([
StructField("id", IntegerType(), True),
StructField("name", StringType(), True),
StructField("age", IntegerType(), True)
])
# Read data with the explicit schema
df = spark.read.csv("data.csv", header=True, schema=schema)
B. تغییر نام ستون ها
بعضی اوقات ، برای وضوح یا دیدار با کنوانسیون های نامگذاری ، باید نام ستون ها تنظیم شوند.
مثال در جرقه:
# Rename the 'name' column to 'full_name'
df = df.withColumnRenamed("name", "full_name")
ج – تغییر انواع داده ها (ریخته گری)
اگر یک ستون با نوع داده اشتباه خوانده شود ، می توانید آن را به نوع مناسب ریخته کنید.
مثال در جرقه:
from pyspark.sql.functions import col
# Cast the 'age' column from IntegerType to StringType (if needed)
df = df.withColumn("age", col("age").cast("string"))
D. اضافه کردن یا رها کردن ستون ها
بعضی اوقات ممکن است نیاز به اضافه کردن ستون های جدید (به عنوان مثال ، زمینه های مشتق شده) داشته باشید یا موارد غیر ضروری را رها کنید.
مثال برای رها کردن یک ستون:
df = df.drop("unnecessary_column")
5 بهترین روشها
-
همیشه ابتدا طرح خود را بازرسی کنید:
بلافاصله پس از بارگذاری داده های خود ، از طرحواره بازرسی کنید تا هر نوع داده های غیر منتظره یا مسائل را زودتر بدست آورید.
-
در صورت امکان از طرح های صریح استفاده کنید:
این امر به جلوگیری از سربار استنباط طرحواره کمک می کند و قوام را تضمین می کند ، به خصوص هنگام کار با مجموعه داده های بزرگ.
-
تغییرات شمای سند:
هرگونه تنظیم انجام شده را به گونه ای پیگیری کنید تا دیگران (یا در آینده) تحولات اعمال شده در داده ها را درک کنند.
-
تنظیم طرح های آزمایشی:
پس از ایجاد تغییرات ، تأیید کنید که DataFrame همانطور که انتظار می رود رفتار می کند. به دنبال مقادیر تهی ، انواع داده های نادرست یا ستون های گمشده باشید.
-
رسیدگی به خطا:
برای مواردی آماده شوید که داده ها با طرح مورد انتظار مطابقت ندارند. برای مدیریت این موارد ، رسیدگی به خطای خطا یا تمیز کردن داده ها را اجرا کنید.
6. مشکلات و عیب یابی مشترک
-
محدودیت های استنتاج شمای:
استنباط طرحواره اتوماتیک ممکن است همیشه به طور صحیح انواع داده ها را به خصوص با داده های مختلط یا کثیف مشخص نکند.
-
ناسازگاری داده ها:
هنگامی که داده های منبع با طرح تعریف شده تراز نمی شوند ، ممکن است با مقادیر تهی یا خطاهای زمان اجرا به پایان برسید.
-
نگرانی های عملکرد:
برای مجموعه داده های بزرگ ، تکیه بر استنتاج طرحواره می تواند گران باشد. یک طرح صریح نه تنها صحت را تضمین می کند بلکه باعث افزایش عملکرد می شود.
-
تغییرات نسخه:
در صورت تغییر منابع داده های اساسی ممکن است تنظیمات طرحواره مورد نیاز باشد (به عنوان مثال ، اضافه کردن ستون های جدید یا تغییر موارد موجود).
7 خلاصه
-
بازرسی از طرحواره اولین گام مهم در درک ساختار داده های شماست. چه استفاده
printSchema()
در جرقه یاinfo()
در پاندا ، این فرآیند تضمین می کند که شما از انواع داده ها آگاه هستید و می توانید به طور مقدماتی به هرگونه مسئله بپردازید. - تنظیم طرحواره ممکن است شامل تغییر نام ستون ها ، ریخته گری انواع داده ها و تعریف طرح های صریح هنگام خواندن داده ها باشد. این تنظیمات به تراز کردن داده های شما با نیازهای تجاری و بهبود عملکرد وظایف پردازش داده شما کمک می کند.
- بهترین روشها شامل همیشه بازرسی از طرحواره خود بر روی مصرف داده ها ، استفاده از طرحواره های صریح ، مستندسازی تغییرات و آزمایش تحولات خود برای اطمینان از کیفیت داده ها.
با پیروی از این دستورالعمل ها ، می توانید با اطمینان ساختار داده های خود را مدیریت کنید ، و از پردازش صاف و پایین دست و تحلیل مطمئن تر اطمینان حاصل کنید.