Learning PySpark - Lesson 3 - Functions 1
PySpark is the Python API for Apache Spark, which is an open-source engine designed for large-scale data processing, analytics, and machine learning. Unlike traditional data tools that operate on a single machine, Spark distributes data and computation across a cluster, allowing it to handle huge datasets quickly and fault-tolerantly. PySpark gives Python developers access to this distributed engine without having to write code in Scala or Java, which Spark is built on.
At its core, Spark works by breaking data into chunks and processing them in parallel. PySpark exposes this through two main abstractions. RDDs are the original, low-level building blocks that represent distributed collections of objects with explicit control over how data is partitioned and processed. DataFrames came later and provide a more user-friendly, SQL-like interface that Spark can optimize automatically through its Catalyst optimizer, making many operations much faster and more expressive.
A major feature of Spark, and therefore PySpark, is lazy evaluation. Instead of executing each operation as soon as you write it, Spark builds a plan of transformations and waits until an action—like collecting results, counting rows, or writing data—is requested. This allows Spark to optimize the entire workflow before running it, avoiding unnecessary computation.
PySpark integrates deeply with Spark SQL, enabling queries to be written as DataFrame operations or as literal SQL statements. This makes it easy to work with structured data or to transition from SQL-based analytics to programmatic workflows. Spark’s MLlib library provides scalable machine learning algorithms such as classification, clustering, recommendation systems, and feature engineering tools, all accessible through PySpark. Additionally, Structured Streaming brings real-time data processing into the same DataFrame API, letting developers build pipelines that can handle continuous data flows with minimal difference from batch code.
PySpark can run locally on a single machine for development, but it’s primarily meant for distributed environments such as Hadoop/YARN clusters, Kubernetes, and cloud platforms like AWS EMR, Databricks, or Google Dataproc. Its ability to unify batch processing, SQL analytics, machine learning, and streaming under one framework makes it a central tool in many modern data engineering and data science ecosystems.
تعلّم بايسبارك – الدرس الثالث – استخدام الدالات و التوابع - الجزء الأول
بايْسبارْك هو الواجهة البرمجية بلغة بايثون لمنصّة أباتشي سبارْك، وهي محرّك مفتوح المصدر صُمّم لمعالجة البيانات واسعة النطاق، والتحليلات، وتطبيقات تعلّم الآلة. وعلى عكس أدوات البيانات التقليدية التي تعمل على جهاز واحد، يقوم سبارْك بتوزيع البيانات والعمليات على مجموعة من الحواسيب، مما يتيح له التعامل مع مجموعات بيانات ضخمة بسرعة وقدرة عالية على تحمّل الأخطاء. يمنح بايْسبارْك مطوّري بايثون إمكانية استخدام هذا المحرّك الموزّع دون الحاجة إلى كتابة شيفرة بلغتي سكالا أو جافا اللتين بُني سبارْك عليهما.
يعتمد سبارْك في جوهره على تقسيم البيانات إلى أجزاء صغيرة ومعالجتها بشكل متوازٍ. ويقدّم بايْسبارْك هذا المفهوم من خلال بُنيتين أساسيتين. الأولى هي آر دي دي، وهي اللبنات الأساسية منخفضة المستوى التي تمثّل مجموعات موزّعة من العناصر مع التحكم في طريقة تجزئة البيانات ومعالجتها. أمّا ديتافريم فقد ظهرت لاحقاً لتقدّم واجهة أكثر سهولة تُشبه الجداول وتتيح لسبارْك تحسين الأداء تلقائياً عبر المحسّن كاتاليست، مما يجعل الكثير من العمليات أسرع وأكثر مرونة.
إحدى أهم ميزات سبارْك، وبالتالي بايْسبارْك، هي "التنفيذ الكسول". بدلاً من تنفيذ كل خطوة بمجرد كتابتها، يقوم سبارْك ببناء مخطّط للعمليات وينتظر حتى يتم استدعاء إجراء فعلي مثل جمع النتائج، أو عدّ الصفوف، أو كتابة البيانات. هذا الأسلوب يسمح لسبارْك بتحسين مسار العمل الكامل قبل التنفيذ، مما يقلّل الحسابات غير الضرورية.
يرتبط بايْسبارْك بعمق مع سبارْك إس كيو إل، مما يتيح كتابة الاستعلامات إما عبر عمليات ديتافريم أو عبر أوامر شبيهة بلغة الاستعلام البنيوية. وهذا يسهل التعامل مع البيانات المنظّمة ويدعم الانتقال من التحليل القائم على الاستعلامات إلى البرامج المباشرة. كما توفّر مكتبة إم إل ليب خوارزميات تعلّم آلي قابلة للتوسّع مثل التصنيف، والتجميع، وأنظمة التوصية، وأدوات تجهيز البيانات، وجميعها متاحة من خلال بايْسبارْك. إضافة إلى ذلك، يقدّم سترَكْتشَرْد ستريمينغ معالجة لحظية للبيانات باستخدام نفس واجهة ديتافريم تقريباً، مما يجعل بناء خطوط معالجة متدفّقة أمراً بسيطاً.
يمكن تشغيل بايْسبارْك محلياً على جهاز واحد لأغراض التطوير، لكنه صُمّم أساساً للعمل على بيئات موزّعة مثل مجموعات هادوب/يارن، أو كوبرنتيس، أو منصّات الحوسبة السحابية مثل خدمات السحابة التابعة لأمازون، أو داتابْرِكْس، أو غوغل داتابْروك. قدرته على جمع المعالجة الدفعيّة، وتحليل البيانات الهيكلية، وتعلّم الآلة، ومعالجة البيانات المتدفّقة ضمن إطار واحد تجعله أداة أساسية في بيئات هندسة البيانات وعلوم البيانات الحديثة.
Информация по комментариям в разработке