انطلق في Scala PySpark Databricks: خطوتك الأولى الملموسة اليوم
سكالا باي سبارك داتابريكس: الأساسيات في مقال واحد — كود حقيقي، مخططات وخطوات ملموسة، مقتطفات من دورة تتكون من 43 درسًا.
أفضل طريقة لتعلم Scala PySpark Databricks هي بالممارسة. يساعدك هذا المقال على البدء مع مقتطفات عملية مستمدة من دورة تتكون من 43 درسًا — ما يكفي للحصول على نتيجة أولى اليوم.
- مقدمة وتثبيت
- هندسة Spark
- RDDs الأساس التاريخي
- DataFrames و Dataset API
- Spark SQL
تثبيت Spark محليًا + JDK + Scala/Python
الأهداف التعليمية
- فهم سبب حاجة Spark إلى JDK (Java Virtual Machine)
- تثبيت Java وPython وPySpark بشكل صحيح
- تشغيل SparkSession محليًا والتحقق من التثبيت
- فهم وضع
local[*]مقارنة بمجموعة حقيقية - معرفة مكان العثور على Spark UI على جهازك
لماذا يحتاج Spark إلى Java
جوهر Spark مكتوب بلغة Scala ويعمل على JVM (Java Virtual Machine). حتى عند كتابة PySpark بلغة Python، تُترجم أوامرك وتُنفذ بواسطة محرك JVM في الخلفية. لذلك فإن JDK (Java Development Kit) إلزامي، بغض النظر عن لغة العمل الخاصة بك.
الخطوة 1: تثبيت JDK
قم بتنزيل JDK (Temurin/Adoptium مجاني وموثوق)، ثم تحقق:
| اللغة | نقطة الدخول | التثبيت |
|---|---|---|
| PySpark | SparkSession في Python | pip install pyspark |
| Scala | spark-shell أو sbt | توزيعة Spark + JDK |
| Databricks | دفتر ملاحظات سحابي | لا شيء (المتصفح) |
Spark UI محليًا
عندما تكون SparkSession نشطة، يعرض Spark واجهة ويب للمراقبة على http://localhost:4040. سترى مهامك والمراحل والأقسام وأوقات التنفيذ. سنستخدمها بشكل مكثف في الفصل 05 لتشخيص الأداء.
input("Appuyez sur Entrée...") قبل spark.stop() للحصول على وقت لاستكشافه.الاستيعاب الخام (Bronze) والتنظيف (Silver)
الأهداف التعليمية
- استيعاب CSV وJSON في جداول Bronze Delta
- إضافة بيانات وصفية للاستيعاب
- تنظيف التواريخ والمبالغ غير الصالحة
- إزالة تكرارات المبيعات
- ربط المبيعات والعملاء في Silver
خطوة Bronze: الاستيعاب كما هو
تنسخ طبقة Bronze المصادر بأمانة، مع إضافة بيانات وصفية تقنية (طابع زمني للاستيعاب، ملف المصدر). لا نقوم بالتنظيف هنا.
دوال النوافذ (RANK, LAG, LEAD)
الأهداف التعليمية
- تعريف نافذة باستخدام partitionBy و orderBy
- تصنيف الصفوف باستخدام row_number و rank و dense_rank
- الوصول إلى الصفوف المجاورة باستخدام lag و lead
- حساب التراكمات والمتوسطات المتحركة
- التمييز بين دالة نافذة و groupBy
الفرق الرئيسي مع groupBy
groupBy يقلل الصفوف: 1000 عملية بيع مجمعة حسب المدينة تعطي صفًا واحدًا لكل مدينة. أما دالة النافذة فتحتفظ بجميع الصفوف لكنها تضيف عمودًا محسوبًا على مجموعة (النافذة).
تعريف نافذة
يغطي هذا المقال المقتطفات الأكثر فائدة — الدورة الكاملة Scala PySpark Databricks (11 فصلاً، 43 درسًا، تمارين مصححة ومشروع نهائي) تأخذك إلى النهاية.
./الوصول-إلى-الدورة-الكاملة دورة مجانية: إتقان Claude Codeالأسئلة الشائعة
كم من الوقت لتعلم Scala PySpark Databricks؟
هل هناك متطلبات مسبقة؟
من أين نبدأ عمليًا؟
📬 هل تريد تلقي هذا النوع من الأدلة كل أسبوع؟ اشترك مجانًا — كود حقيقي، بدون كلام فارغ.