مقدمة عن Spark with Python - PySpark للمبتدئين



استحوذت Apache Spark على عالم البيانات الضخمة والتحليلات ، وتعد Python واحدة من أكثر لغات البرمجة التي يمكن الوصول إليها والمستخدمة في الصناعة اليوم. لذلك هنا في هذه المدونة ، سنتعرف على Pyspark (شرارة مع Python) للحصول على أفضل ما في العالمين.

هو أحد الأطر الأكثر استخدامًا عندما يتعلق الأمر بالتعامل مع البيانات الضخمة والعمل معها بايثون هي واحدة من أكثر لغات البرمجة استخدامًا لتحليل البيانات والتعلم الآلي وغير ذلك الكثير. فلماذا لا نستخدمها معًا؟ هذا هو المكان انطلق مع بايثون المعروف أيضًا باسم بايسبارك يدخلالصورة.

بمتوسط ​​راتب يبلغ 110،000 دولارًا أمريكيًا لمطور Apache Spark ، فلا شك في أن Spark مستخدمة كثيرًا في الصناعة. بسببانهامجموعة مكتبة غنية ، يتم استخدام Python بواسطةالغالبية علماء البيانات وخبراء التحليلات اليوم. كان دمج Python مع Spark هدية كبيرة للمجتمع. تم تطوير Spark بلغة Scala ، والتي تشبه إلى حد كبير لغة Java. يقوم بتجميع رمز البرنامج إلى رمز ثانوي لـ JVM لمعالجة البيانات الضخمة. لدعم Spark مع python ، أصدر مجتمع Apache Spark PySpark.منذ ذلك الحين، من المعروف أنها واحدة من أكثر المهارات المرغوبة في جميع أنحاء الصناعة بسبب مجموعة واسعة من الفوائد التي جاءت بعد الجمع بين أفضل ما في هذين العالمين.في مدونة Spark with Python هذه ، سأناقش الموضوعات التالية.





مقدمة إلى Apache Spark

Apache Spark هو إطار عمل مفتوح المصدر للحوسبة العنقودية لـ معالجة في الوقت الحقيقي تم تطويره بواسطة مؤسسة Apache Software Foundation. يوفر Spark واجهة لبرمجة مجموعات كاملة مع ضمني توازي البيانات و التسامح مع الخطأ.



فيما يلي بعض ميزات Apache Spark التي تمنحها ميزة على الأطر الأخرى:

ميزات Spark - Spark with Python - Edureka

  • سرعة: إنه أسرع 100 مرة من أطر معالجة البيانات التقليدية واسعة النطاق.
  • التخزين المؤقت القوي: توفر طبقة البرمجة البسيطة إمكانات قوية للتخزين المؤقت واستمرار القرص.
  • تعيين: يمكن نشرها من خلال Mesos أو Hadoop عبر Yarn أو مدير مجموعة Spark الخاص.
  • في الوقت الحالى: في الوقت الحالىالحساب والكمون المنخفض بسبب الحساب في الذاكرة.
  • متعدد اللغات: إنها واحدة من أهمهاالميزاتمن هذا الإطار حيث يمكن برمجته في Scala و Java و Python و R.

لماذا تختار بايثون؟

على الرغم من أن Spark تم تصميمها في scala، مما يجعلها أسرع بعشر مرات من Python ، لكن Scala يكون أسرع فقط عندما يكون ملف عدد النوى المستخدمة أقل . نظرًا لأن معظم عمليات التحليل والعملية تتطلب في الوقت الحاضر عددًا كبيرًا من النوى ، فإن ميزة أداء Scala ليست كثيرة.



للمبرمجين Python أسهل نسبيًا ليتعلم بسبب المكتبات النحوية والمعيارية. علاوة على ذلك ، إنه أ لغة مكتوبة ديناميكيًا ، مما يعني أن RDDs يمكنها الاحتفاظ بأشياء من أنواع متعددة.

على الرغم من أن سكالا SparkMLlib ليس لديها ما يكفي من المكتبات والأدوات لتعلم الآلة و البرمجة اللغوية العصبية المقاصد. علاوة على ذلك ، يفتقر Scala إلى تصور البيانات.

تدريب PySpark | أباتشي سبارك مع بايثون | إدوريكا

اشترك في قناتنا على يوتيوب للحصول على تحديثات جديدة ..!

إعداد Spark مع Python (PySpark)

أتمنى أن تعرفوا يا رفاق كيف .لذلك ، بمجرد أن تفعل غير مضغوط ملف شرارة ، المثبتة وأضاف أنه الطريق إلى .bashrc ملف ، تحتاج إلى كتابةالمصدر. bashrc

تصدير SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 export PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin

لفتح قذيفة pyspark ، يلزمك كتابة الأمر./bin/pyspark

شرارة في الصناعة

اباتشي سبارك لما لها من ميزات مذهلة مثل معالجة في الذاكرة و متعدد اللغات و معالجة سريعة يتم استخدامها من قبل العديد من الشركات في جميع أنحاء العالم لأغراض مختلفة في مختلف الصناعات:

ياهو تستخدم Apache Spark لقدراتها على التعلم الآلي لتخصيص الأخبار وصفحات الويب وأيضًا للإعلانات المستهدفة. يستخدمون Spark with python لمعرفة نوع الأخبار - يهتم المستخدمون بقراءة القصص الإخبارية وتصنيفها لمعرفة نوع المستخدمين الذين قد يهتمون بقراءة كل فئة من الأخبار.

موقع TripAdvisor يستخدم Apache Spark لتقديم المشورة لملايين المسافرين من خلال مقارنة مئات المواقع للعثور على أفضل أسعار الفنادق لعملائها. الوقت المستغرق في قراءة مراجعات الفنادق ومعالجتها بتنسيق يمكن قراءته تتم بمساعدة Apache Spark.

إحدى أكبر منصات التجارة الإلكترونية في العالم علي بابا تدير بعضًا من أكبر وظائف Apache Spark في العالم من أجل تحليل مئات البيتابايت من البيانات على منصة التجارة الإلكترونية الخاصة بها.

PySpark SparkContext وتدفق البيانات

عند الحديث عن Spark مع Python ، أصبح العمل مع RDDs ممكنًا بواسطة مكتبة Py4j. يربط PySpark Shell واجهة Python API لإثارة النواة وتهيئة Spark Context. سياق شرارة هو قلب أي تطبيق سبارك.

  1. يقوم سياق Spark بإعداد الخدمات الداخلية وإنشاء اتصال ببيئة تنفيذ Spark.
  2. ينسق كائن sparkcontext في برنامج التشغيل كل العمليات الموزعة ويسمح بتخصيص الموارد.
  3. يوفر مدراء الكتلة المنفذين ، وهم عملية JVM مع المنطق.
  4. يرسل كائن SparkContext التطبيق إلى المنفذين.
  5. يقوم SparkContext بتنفيذ المهام في كل منفذ.

c c # c ++

واقعة استخدام PySpark KDD

الآن دعونا نلقي نظرة على واقعة استخدام كوب 99 دينار كويتي (مسابقة أدوات اكتشاف المعرفة واستخراج البيانات الدولية).سنأخذ هنا جزءًا صغيرًا من مجموعة البيانات لأن مجموعة البيانات الأصلية كبيرة جدًا

import urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz'، 'kddcup.data_10_percent.gz')

إنشاء RDD:
الآن يمكننا استخدام هذا الملف ل إنشاء RDD الخاص بنا .

data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (ملف_بيانات)

الفلتره:

افترض أننا نريد حساب عدد الطبيعي. التفاعلات التي لدينا في مجموعة البيانات الخاصة بنا. نستطيع منقي لدينا raw_data RDD على النحو التالي.

normal_raw_data = raw_data.filter (lambda x: 'normal.' in x)

العد:

الآن نستطيع العد كم عدد العناصر التي لدينا في RDD الجديد.

من وقت الاستيراد الوقت t0 = time () normal_count = normal_raw_data.count () tt = time () - t0 print 'هناك {} تفاعلات' عادية '. تنسيق (normal_count) print' اكتمل العد في {} ثانية '. (الجولة (tt ، 3))

انتاج:

تم إكمال 97278 عدد تفاعلات 'عادي' في 5.951 ثانية

رسم الخرائط:

في هذاقضيةنريد قراءة ملف البيانات الخاص بنا كملف بتنسيق CSV. يمكننا القيام بذلك عن طريق تطبيق دالة lambda على كل عنصر في RDD على النحو التالي. هنا سوف نستخدم ملف الخريطة () واتخاذ () التحول.

من pprint استيراد pprint csv_data = raw_data.map (lambda x: x.split ('،')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'اكتمل التحليل في {} ثانية '.format (round (tt، 3)) pprint (head_rows [0])

انتاج:

اكتمل التحليل في 1.715 ثانية [u'0 '، u'tcp'، u'http '، u'SF'، u'181 '، u'5450'، u'0 '، u'0'،. . أنت 'طبيعي.']

شق:

الآن نريد أن يكون كل عنصر في RDD كزوج ذي قيمة رئيسية حيث يكون المفتاح هو العلامة (على سبيل المثال عادي ) والقيمة هي القائمة الكاملة للعناصر التي تمثل الصف في الملف بتنسيق CSV. يمكننا المضي قدما على النحو التالي. هنا نستخدم ملف line.split () وخريطة ().

def parse_interaction (line): elems = line.split ('،') tag = elems [41] إرجاع (tag، elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
 انتاج: (u'normal. '، [u'0'، u'tcp '، u'http'، u'SF '، u'181'، u'5450 '، u'0'، u'0 '، u' 0.00 '، u'1.00'، .... غير طبيعي. '])

العمل الجماعي:

هنا سنستخدم إجراء الجمع (). سوف تحصل على جميع عناصر RDD في الذاكرة. لهذا السبب ، يجب استخدامه بحذر عند العمل مع RDDs كبيرة.

t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'البيانات التي تم جمعها في {} ثوانٍ' تنسيق (round (tt، 3))

انتاج:

تم جمع البيانات في 17.927 ثانية

استغرق ذلك وقتًا أطول مثل أي إجراء آخر استخدمناه من قبل ، بالطبع. يجب تنسيق كل عقدة عامل Spark تحتوي على جزء من RDD من أجل استرداد جزءها ثم تقليل كل شيء معًا.

كمثال أخير يجمع كل ما سبق ، نريد أن نجمع كلعاديالتفاعلات كأزواج مفتاح القيمة.

# الحصول على البيانات من ملف data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # parse في أزواج key_csv_data = raw_data.map (parse_interaction) # تصفية تفاعلات المفاتيح العادية (normal_key_interactions = key_csv_data.file. lambda x: x [0] == 'normal.') # اجمع كل t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'تم جمع البيانات في {} ثانية '.format (round (tt، 3)) print 'هناك {} تفاعلات' عادية '. تنسيق (normal_count)

انتاج:

تم جمع البيانات في 12.485 ثانية. يوجد 97278 تفاعل طبيعي

إذن هذا هو يا شباب!

أتمنى أن تكون قد استمتعت بمدونة Spark with Python هذه. إذا كنت تقرأ هذا ، فتهانينا! لم تعد مبتدئًا في PySpark. جرب هذا المثال البسيط على أنظمتك الآن.

الآن بعد أن فهمت أساسيات PySpark ، تحقق من ملف من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. إديوريكا تدريب اعتماد Python Spark باستخدام PySpark تم تصميمه لتزويدك بالمعرفة والمهارات المطلوبة لتصبح مطور Spark ناجحًا باستخدام Python وإعدادك لامتحان شهادة Cloudera Hadoop و Spark Developer (CCA175).

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