دروس PySpark - تعلم Apache Spark باستخدام Python

في هذه المدونة الخاصة ببرنامج PySpark التعليمي ، ستتعرف على PSpark API التي تستخدم للعمل مع Apache Spark باستخدام لغة برمجة Python.

في عالم يتم فيه إنشاء البيانات بمعدل ينذر بالخطر ، يكون التحليل الصحيح لتلك البيانات في الوقت الصحيح مفيدًا للغاية. يعد Apache Spark أحد أكثر الأطر المدهشة للتعامل مع البيانات الضخمة في الوقت الفعلي وإجراء التحليل.سويا، أو PySpark هي واحدة من أكثر دورات الشهادات المرغوبة ، مما يمنح Scala for Spark فرصة للحصول على أموال. لذلك في هذا برنامج PySpark التعليمي مدونة ، سأناقش المواضيع التالية:

كيف تطبع مصفوفة php





برنامج PySpark التعليمي: ما هو PySpark؟

Apache Spark عبارة عن إطار عمل سريع للحوسبة العنقودية يستخدم لمعالجة البيانات الضخمة والاستعلام عنها وتحليلها. كونها تعتمد على الحساب في الذاكرة ، فهي تتمتع بميزة على العديد من أطر عمل البيانات الضخمة الأخرى.

ميزات PySpark - دروس PySpark - Edureka



في الأصل مكتوبًا بلغة Scala Programming Language ، طور مجتمع المصادر المفتوحة أداة رائعة لدعم Python لـ Apache Spark. تساعد PySpark علماء البيانات على التفاعل مع RDDs في Apache Spark و Python من خلال مكتبتها Py4j. هناك العديد من الميزات التي تجعل PySpark إطار عمل أفضل من غيره:

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

دعنا نمضي قدمًا في مدونة PySpark التعليمية الخاصة بنا ونرى أين يتم استخدام Spark في الصناعة.

PySpark في الصناعة

تدور كل صناعة حول البيانات الضخمة وحيث توجد بيانات ضخمة هناك تحليل متضمن. لذلك دعونا نلقي نظرة على الصناعات المختلفة حيث يتم استخدام Apache Spark.



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

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

الرعاية الصحية يستخدم مقدمو الخدمة Apache Spark إلى تحليل سجلات المرضى إلى جانب البيانات السريرية السابقة لتحديد المرضى الذين من المحتمل أن يواجهوا مشكلات صحية بعد خروجهم من العيادة. يستخدم Apache Spark في التسلسل الجيني لتقليل الوقت اللازم لمعالجة بيانات الجينوم.

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

السفر تستخدم الصناعات أيضًا Apache Spark. موقع TripAdvisor ، موقع السفر الرائد الذي يساعد المستخدمين على التخطيط لرحلة مثالية يستخدم Apache Spark لتسريعها توصيات العملاء الشخصية يستخدم موقع تريب أدفيزور أباتشي سبارك لتقديم المشورة لملايين المسافرين مقارنة مئات المواقع للعثور على أفضل أسعار الفنادق لعملائها.

أحد الجوانب المهمة في هذا البرنامج التعليمي لـ PySpark هو فهم سبب حاجتنا للذهاب إلى Python؟ لماذا لا تستخدم Java أو Scala أو R؟

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


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

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

مجموعة كبيرة من المكتبات: لا تمتلك Scala أدوات ومكتبات كافية لعلوم البيانات مثل Python لتعلم الآلة ومعالجة اللغة الطبيعية. علاوة على ذلك ، يفتقر Scala إلى التصور الجيد وتحولات البيانات المحلية.

دعم مجتمعي ضخم: تمتلك Python مجتمعًا عالميًا يضم ملايين المطورين الذين يتفاعلون عبر الإنترنت وغير متصل في آلاف المواقع الافتراضية والمادية.

يعد استخدام RDDs أحد أهم الموضوعات في دروس PySpark. دعونا نفهم ما هي RDDs

سبارك RDDs

عندما يتعلق الأمر بالحوسبة الموزعة التكرارية ، أي معالجة البيانات عبر وظائف متعددة في العمليات الحسابية ، نحتاج إلى إعادة استخدام البيانات أو مشاركتها بين وظائف متعددة. واجهت الأطر السابقة مثل Hadoop مشاكل أثناء التعامل مع عمليات / وظائف متعددة مثل

  • تخزين البيانات في التخزين الوسيط مثل HDFS
  • تجعل وظائف الإدخال / الإخراج المتعددة العمليات الحسابية بطيئة
  • عمليات التكرار والتسلسل والتي بدورها تجعل العملية أبطأ

تحاول RDDs حل جميع المشكلات من خلال تمكين عمليات حسابية موزعة في الذاكرة تتسامح مع الأخطاء. RDD اختصار لـ مجموعات البيانات الموزعة المرنة. RDD هو تجريد موزّع للذاكرة يتيح للمبرمجين إجراء عمليات حسابية في الذاكرة على مجموعات كبيرة بطريقة تتسامح مع الأخطاء. هم ال مجموعة من العناصر للقراءة فقط مقسمة عبر مجموعة من الأجهزة التي يمكن إعادة بنائها في حالة فقد أحد الأقسام. هناك العديد من العمليات التي يتم إجراؤها على أجهزة RDD:

  • التحولات: تُنشئ التحويلات مجموعة بيانات جديدة من مجموعة موجودة. التقييم الكسول
  • أجراءات: يفرض Spark الحسابات للتنفيذ فقط عندما يتم استدعاء الإجراءات على RDDs

دعونا نفهم بعض التحولات والإجراءات والوظائف

قراءة ملف وعرض أهم n من العناصر:

rdd = sc.textFile ('file: /// home / edureka / Desktop / Sample') rdd.take (n)

انتاج:

[u'Deforestation ينشأ باعتباره القضية البيئية والاجتماعية الرئيسية التي اتخذت الآن شكل أكثر من مجرد شيطان قوي. يجب أن نعرف أسباب وآثار وطرق حل المشاكل التي نشأت بسبب إزالة الغابات. لقد قدمنا ​​العديد من الفقرات ، مقال طويل وقصير حول إزالة الغابات من أجل مساعدة أطفالك وأطفالك على التعرف على المشكلة وكذلك المشاركة في مسابقة كتابة المقالات في المدرسة أو خارج المدرسة. ، يمكنك تحديد أي مقال عن إزالة الغابات يرد أدناه وفقًا لمعيار الفصل. ، 'إزالة الغابات هو مشكلة عالمية كبرى للمجتمع والبيئة.']

التحويل إلى أحرف صغيرة وتقسيم: (السفلي والتقسيم)

def Func (line): lines = lines.lower () أسطر = خطوط .split () عودة خطوط rdd1 = rdd.map (Func) rdd1.take (5)

انتاج:

[[u'deforestation '، u'is'، u'arising '، u'as'، u'the '، u'main'، u'environmental '، u'and'، u'social '، u'issue '، u'which'، u'has '، u'now'، u'taken '...... . . ]

إزالة StopWords: (تصفية)

stop_words = ['a'، 'all'، 'the'، 'as'، 'is'، 'am'، 'an'، 'and'، 'be'، 'been'، 'from'، 'had' ، 'I'، 'I'd'، 'why'، 'with'] rdd2 = rdd1.filter (lambda z: z not in stop_words) rdd2.take (10)

انتاج:

[u'deforestation '، u'arising'، u'main '، u'environmental'، u'social '، u'issue'، u'which '، u'has'، u'now '، u'taken' ]

مجموع الأعداد من 1 إلى 500: (اختزال)

sum_rdd = sc.parallelize (النطاق (1،500)) sum_rdd.reduce (lambda x ، y: x + y)

انتاج |:

124750

التعلم الآلي باستخدام PySpark

متابعة مدونة PySpark التعليمية الخاصة بنا ، دعنا نحلل بعض بيانات كرة السلة ونقوم ببعض التنبؤات المستقبلية. لذلك ، سنستخدم هنا بيانات كرة السلة لجميع لاعبي الدوري الاميركي للمحترفين منذ ذلك الحين 1980 [سنة تقديم 3 مؤشرات].

كيفية استخدام مكرر

تحميل البيانات:

df = spark.read.option ('header'، 'true') .option ('inferSchema'، 'true') .csv ('file: ///home/edureka/Downloads/season_totals.csv')

أعمدة الطباعة:

طباعة (df.columns)

انتاج:

['_c0'، 'player'، 'pos'، 'age'، 'team_id'، 'g'، 'gs'، 'mp'، 'fg'، 'fga'، 'fg_pct'، 'fg3'، ' fg3a '،' fg3_pct '،' fg2 '،' fg2a '،' fg2_pct '،' efg_pct '،' ft '،' fta '،' ft_pct '،' orb '،' drb '،' trb '،' ast ' ، 'stl'، 'blk'، 'tov'، 'pf'، 'pts'، 'yr']

فرز اللاعبين (ترتيب حسب) و toPandas:

هنا نقوم بفرز اللاعبين بناءً على النقاط المسجلة في الموسم.

df.orderBy ('pts'، تصاعدي = خطأ) .limit (10) .toPandas () [['yr'، 'player'، 'age'، 'pts'، 'fg3']]

انتاج:

باستخدام DSL و matplotlib:

نحن هنا نحلل متوسط ​​عدد 3 نقاط محاولات لكل موسم في مهلة 36 دقيقة [فاصل زمني يقابل لعبة NBA كاملة تقريبية مع راحة كافية]. نحسب هذا المقياس باستخدام عدد محاولات الهدف الميداني المكونة من 3 نقاط (fg3a) والدقائق التي تم لعبها (mp) ثم نرسم النتيجة باستخدام matlplotlib .

من pyspark.sql.functions import col fga_py = df.groupBy ('yr') .agg ({'mp': 'sum'، 'fg3a': 'sum'}). حدد (col ('yr')، ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). alias ('fg3a_p36m')) .orderBy ('yr') من matplotlib import pyplot كـ plt import seaborn as sns plt.style .use ('fivethirtyeight') _df = fga_py.toPandas () plt.plot (_df.yr، _df.fg3a_p36m، color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('متوسط ​​اللاعب محاولات ثلاثية النقاط (لكل 36 دقيقة) ') plt.annotate (' 3 pointer المضافة '، xy = (1980، .5)، xytext = (1981، 1.1)، Fontize = 9، arrowprops =ict (facecolor =' grey '، shrink = 0، linewidth = 2)) plt.annotate (' NBA انتقل في خط من 3 نقاط '، xy = (1996، 2.4)، xytext = (1991.5، 2.7)، Fontize = 9، arrowprops = facecolor = 'رمادي' ، يتقلص = 0 ، عرض خطي = 2)) plt.annotate ('NBA انتقل للخلف سطرًا مكونًا من 3 نقاط' ، xy = (1998 ، 2.) ، xytext = (1998.5 ، 2.4) ، حجم الخطوط = 9 ، دعامات السهم = ديكت (facecolor = 'grey' ، يتقلص = 0 ، linewidth = 2))

انتاج:

الانحدار الخطي ومجمع المتجهات:

يمكننا ملاءمة نموذج الانحدار الخطي لهذا المنحنى لنمذجة عدد محاولات التسديد للسنوات الخمس المقبلة. يتعين علينا تحويل بياناتنا باستخدام وظيفة VectorAssembler إلى عمود واحد. هذا ال المتطلبات ل API الانحدار الخطي في MLlib.

من pyspark.ml.feature استيراد VectorAssembler t = VectorAssembler (inputCols = ['yr']، outputCol = 'features') التدريب = t.transform (fga_py) .withColumn ('yr'، fga_py.yr) .withColumn ('label '، fga_py.fg3a_p36m) training.toPandas (). head ()

انتاج:

فرز قائمة c ++

نموذج البناء:

ثم نبني كائن نموذج الانحدار الخطي باستخدام بياناتنا المحولة.

من pyspark.ml.regression استيراد LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (تدريب)

تطبيق النموذج المدرب على مجموعة البيانات:

نقوم بتطبيق نموذج كائن النموذج المدرب لدينا على مجموعة التدريب الأصلية الخاصة بنا بالإضافة إلى 5 سنوات من البيانات المستقبلية

من pyspark.sql.types import Row # تطبيق نموذج لموسم 1979-80 حتى موسم 2020-21 training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). collection () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). collection () prediction_yrs = [2017، 2018، 2019، 2020، 2021] all_yrs = training_yrs + prediction_yrs # built Testing DataFrame test_rdd = sc.parallelize (all_yrs) row = الصف ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (row) .toDF ()) # تطبيق نموذج الانحدار الخطي df_results = model.transform (all_years_features) .toPandas ()

رسم التوقع النهائي:

يمكننا بعد ذلك رسم نتائجنا وحفظ الرسم البياني في مكان محدد.

plt.plot (df_results.yr، df_results.prediction، linewidth = 2، linestyle = '-'، color = '# 224df7'، label = 'L2 Fit') plt.plot (training_yrs، training_y، color = '# f08080 '، label = بلا) plt.xlabel (' السنة ') plt.ylabel (' عدد المحاولات ') plt.legend (loc = 4) _ = plt.title (' متوسط ​​محاولات اللاعب 3 نقاط (لكل 36 دقيقة) ') plt.tight_layout () plt.savefig (' / home / edureka / Downloads / Images / REGRESSION.png ')

انتاج:

وبهذا الرسم البياني ، نصل إلى نهاية مدونة PySpark التعليمية هذه.

إذن هذا كل شيء يا رفاق!

آمل أن تكون لديكم فكرة عن ماهية PySpark ، ولماذا تكون Python هي الأنسب لـ Spark و RDDs ولمحة عن التعلم الآلي باستخدام Pyspark في مدونة PySpark التعليمية هذه. تهانينا ، لم تعد مبتدئًا في PySpark. إذا كنت ترغب في معرفة المزيد حول PySpark وفهم حالات استخدام الصناعة المختلفة ، فقم بإلقاء نظرة على انطلق مع بايثون مدونة.

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