أباتشي سبارك تتحد

تخبرك مدونة Spark Hadoop هذه بكل ما تحتاج لمعرفته حول Apache Spark combByKey. أوجد متوسط ​​الدرجات لكل طالب باستخدام طريقة combByKey.

بمساهمة بريثفيراج بوس

Spark هو إطار عمل للحوسبة العنقودية سريع البرق مصمم للحوسبة السريعة والطلب على المحترفين كبير في السوق اليوم.إليك واجهة برمجة تطبيقات قوية في Spark وهي الجمع بين المفتاح .





مقياس API: org.apache.spark.PairRDDFunctions.combineByKey .

واجهة برمجة تطبيقات Python: pyspark.RDD.combineByKey .



تأخذ API ثلاث وظائف (مثل تعابير لامدا في بايثون أو وظائف مجهولة في سلم )، يسمى،

  1. إنشاء وظيفة موحد: x
  2. دمج وظيفة القيمة: y
  3. دمج وظيفة الجمع: z

وشكل API هو الجمع بين المفتاح (x ، y ، z) .

كيف تجد طول المصفوفة في جافا سكريبت

دعونا نرى مثالاً (في Scala) يمكن العثور على مصدر Scala الكامل هنا .



هدفنا هو إيجاد متوسط ​​الدرجات لكل طالب.

إليك فئة العنصر النائب تفاصيل النقاط تخزين أسماء الطلاب مع درجة المادة.

Scoredetail-spark-combinebykey

يتم إنشاء بعض بيانات الاختبار وتحويلها إلى قيم زوج المفاتيح حيث key = اسم الطلاب و القيمة = تفاصيل النقاط نموذج.

ثم نقوم بإنشاء Pair RDD كما هو موضح في جزء الكود أدناه. فقط للتجربة ، قمت بإنشاء قسم تجزئة بالحجم 3 ، لذلك ستحتوي الأقسام الثلاثة على أزواج من قيم المفاتيح 2 و 2 و 4 على التوالي. يتم تمييز ذلك في القسم حيث نستكشف كل قسم.

الآن يمكننا استكشاف كل قسم. يقوم السطر الأول بطباعة طول كل قسم (عدد أزواج قيمة المفتاح لكل قسم) ويطبع السطر الثاني محتويات كل قسم.

تحويل المضاعفة إلى كثافة العمليات في جافا

وهذه هي الحركة النهائية حيث نحسب متوسط ​​الدرجات لكل طالب بعد دمج الدرجات عبر الأقسام.

تدفق الشفرة أعلاه كما يلي ...
نحتاج أولاً إلى إنشاء دالة مجمعة وهي في الأساس مجموعة = (قيمة ، 1) لكل مفتاح مصادفة في كل قسم. بعد هذه المرحلة يكون الناتج لكل (مفتاح ، قيمة) في القسم (مفتاح ، (قيمة ، 1)).

ثم في التكرار التالي ، يتم دمج وظائف المجمع لكل قسم باستخدام وظيفة قيمة الدمج لكل مفتاح. بعد هذه المرحلة يكون خرج كل (مفتاح ، (قيمة ، 1)) هو (مفتاح ، (إجمالي ، عدد)) في كل قسم.

أخيرًا ، تدمج وظيفة دمج الدمج جميع القيم عبر الأقسام في المنفذين وترسل البيانات مرة أخرى إلى السائق. بعد هذه المرحلة ، يكون خرج كل (مفتاح ، (إجمالي ، عدد)) لكل قسم
(مفتاح ، (totalAcrossAllPartitions ، countAcrossAllPartitions)).

تقوم الخريطة بتحويل ملف
(key، tuple) = (key، (totalAcrossAllPartitions، countAcrossAllPartitions))
لحساب المتوسط ​​لكل مفتاح كـ (key، tuple._1 / tuple._2).

يطبع السطر الأخير متوسط ​​الدرجات لجميع الطلاب في نهاية السائق.

لديك سؤال لنا؟ أذكرها في قسم التعليقات وسنعاود الاتصال بك.

المنشورات ذات الصلة:

تبديد الغموض عن التقسيم في سبارك