تحليل البيانات باستخدام واجهات برمجة تطبيقات DataFrame
يعد استخدام واجهات برمجة تطبيقات DataFrame لتحليل البيانات أمرا ضروريا لاستكشاف البيانات المنظمة ومعالجتها وتحليلها بكفاءة في تطبيقات مختلفة.
يتم توفير واجهات برمجة تطبيقات DataFrame من خلال العديد من مكتبات معالجة البيانات ، مثل Pandas in Python و Apache Spark و dplyr R ، كل منها يوفر أدوات للتعامل مع مجموعات البيانات الكبيرة بسهولة. يبدو العمل مع DataFrames مشابها عبر المكتبات، ولكن لكل مكتبة بعض الاختلافات الطفيفة في قدراتها.
إطار بيانات Spark
Spark DataFrame عبارة عن مجموعة موزعة من البيانات المنظمة في أعمدة مسماة، تشبه إلى حد كبير الجدول في قاعدة بيانات. يتيح لك الاستعلام عن مجموعات البيانات الكبيرة وتحويلها باستخدام عمليات أو واجهات برمجة تطبيقات تشبه SQL أثناء التوسع تلقائيا عبر نظام مجموعة. توفر DataFrames مجموعة غنية من الوظائف (تحديد الأعمدة ، والتصفية ، والانضمام ، والتجميع) التي تسمح لك بحل مشكلات تحليل البيانات الشائعة بكفاءة.
فيما يلي مثال على استخدام واجهات برمجة تطبيقات Spark DataFrame في Python. تقوم التعليمات البرمجية بإنشاء Spark DataFrame بالأسماء والأعمار، ثم توضح تحديد عمود، وتصفية الصفوف حسب العمر، والتجميع حسب العمر لحساب التكرارات.
# Create a sample DataFrame
data = [("Alice", 34), ("Bob", 45), ("Cathy", 29)]
columns = ["Name", "Age"]
df = spark.createDataFrame(data, columns)
# Select columns
df.select("Name").show()
# Filter rows
df.filter(df["Age"] > 30).show()
# Group by and aggregate
df.groupBy("Age").count().show()
Spark DataFrame عبارة عن بنية بيانات موزعة قائمة على نظام المجموعة مصممة للتعامل مع مجموعات البيانات الكبيرة جدا عن طريق تقسيمها ومعالجتها عبر أجهزة متعددة.
إطار بيانات الباندا
إطار بيانات Pandas هو بنية بيانات في الذاكرة وآلة واحدة ، وهي الأفضل لمجموعات البيانات الصغيرة والمتوسطة التي تتناسب مع جهاز كمبيوتر واحد.
وفيما يلي مثال على القيام بنفس المهام باستخدام واجهات برمجة تطبيقات Pandas DataFrame في Python:
import pandas as pd
# Create a sample DataFrame
data = {'Name': ['Alice', 'Bob', 'Cathy', 'David'],
'Age': [34, 45, 29, 23]}
df = pd.DataFrame(data)
# Select columns
print(df[['Name']])
# Filter rows
print(df[df['Age'] > 30])
# Group by and aggregate
print(df.groupby('Age').size())
مقارنة Spark DataFrame مع Pandas DataFrame
| ميزة | إطار بيانات Spark | إطار بيانات الباندا |
|---|---|---|
| تنفيذ | موزعة عبر نظام مجموعة | يعمل على جهاز واحد (في الذاكرة) |
| قابلية التوسع | يعالج مجموعات البيانات الكبيرة جدا (تيرابايت أو أكثر) | الأفضل لمجموعات البيانات الصغيرة والمتوسطة (يناسب ذاكرة الوصول العشوائي) |
| واجهات برمجه التطبيقات | عمليات تشبه SQL ، واجهات برمجة تطبيقات Spark في Python / Scala / Java / R | واجهة برمجة التطبيقات المستندة إلى Python |
| اداء | محسن مع محركات Catalyst & Tungsten | محسن لعمليات العقدة الواحدة |
| كسول مقابل متلهف | التقييم البطيء (استعلام الخطط قبل التنفيذ) | تنفيذ حريص (يعمل على الفور) |
| حالات الاستخدام | معالجة البيانات الضخمة ، ETL ، البث ، التعلم الآلي | تحليل البيانات ، النماذج الأولية ، ML خفيف الوزن |
| التكامل | يعمل مع نظام Spark البيئي والتخزين الموزع | يعمل مع نظام Python البيئي (NumPy و SciPy وما إلى ذلك) |
تلميح
لمزيد من المعلومات حول تحميل البيانات وتحويلها باستخدام Spark، راجع Apache Spark Python (PySpark) DataFrame API أو Apache Scala DataFrame API أو SparkR SparkDataFrame API.