برنامه نویسی

یادداشت های مطالعه دوره اصول 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() در پاندا ، این فرآیند تضمین می کند که شما از انواع داده ها آگاه هستید و می توانید به طور مقدماتی به هرگونه مسئله بپردازید.
  • تنظیم طرحواره ممکن است شامل تغییر نام ستون ها ، ریخته گری انواع داده ها و تعریف طرح های صریح هنگام خواندن داده ها باشد. این تنظیمات به تراز کردن داده های شما با نیازهای تجاری و بهبود عملکرد وظایف پردازش داده شما کمک می کند.
  • بهترین روشها شامل همیشه بازرسی از طرحواره خود بر روی مصرف داده ها ، استفاده از طرحواره های صریح ، مستندسازی تغییرات و آزمایش تحولات خود برای اطمینان از کیفیت داده ها.

با پیروی از این دستورالعمل ها ، می توانید با اطمینان ساختار داده های خود را مدیریت کنید ، و از پردازش صاف و پایین دست و تحلیل مطمئن تر اطمینان حاصل کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا