برنامج PySpark Dataframe التعليمي - برمجة PySpark باستخدام إطارات البيانات

في مدونة PySpark Dataframe التعليمية هذه ، ستتعرف على التحولات والإجراءات في Apache Spark مع أمثلة متعددة.

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





دروس PySpark Dataframe: ما هي إطارات البيانات؟

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

Dataframe-Pyspark-Dataframe-Tutorial



يمكننا القول أن أطر البيانات ليست سوى بنية بيانات ثنائية الأبعاد ، تشبه جدول SQL أو جدول بيانات. الآن دعنا نمضي قدمًا في هذا البرنامج التعليمي PySpark Dataframe ونفهم لماذا نحتاج بالضبط Pyspark Dataframe؟

لماذا نحتاج Dataframes؟

1- معالجة البيانات المهيكلة وشبه المنظمة



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

2.S الترخيص والتقطيع

إطار البيانات أعادةً ما تدعم PIs طرقًا مفصلة لـ تشريح وتقطيع البيانات. ويشملعمليةns مثل 'تحديد' الصفوف والأعمدة والخلايا بالاسم أو الرقم وتصفية الصفوف وما إلى ذلك. عادةً ما تكون البيانات الإحصائية شديدة الفوضى وتحتوي على الكثير من القيم المفقودة والخاطئة وانتهاكات النطاق. لذا فإن إحدى السمات المهمة للغاية لإطارات البيانات هي الإدارة الصريحة للبيانات المفقودة.

3. مصادر البيانات

يحتوي DataFrame على دعم لمجموعة كبيرة من تنسيقات البيانات ومصادرها ، وسننظر في هذا لاحقًا في مدونة Pyspark Dataframe التعليمية. يمكنهم أخذ البيانات من مصادر مختلفة.

4. دعم للغات متعددة

لديه دعم API للغات مختلفة مثل Python و R و Scala و Java،مما يسهل على الأشخاص الذين لديهم خلفيات برمجة مختلفة استخدامها.

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

ميزات Dataframes

  • أطر البيانات هي وزعت في الطبيعة ، مما يجعلها بنية بيانات متسامحة ومتاحة للغاية.
  • التقييم الكسول هي استراتيجية تقييم تحتفظ بتقييم التعبير حتى الحاجة إلى قيمته. يتجنب التقييم المتكرر. التقييم الكسول في Spark يعني أن التنفيذ لن يبدأ حتى يتم تشغيل الإجراء. في Spark ، تظهر صورة التقييم الكسول عندما تحدث تحولات Spark.
  • أطر البيانات هي غير قابل للتغيير في الطبيعة. أعني بالثبات أنه كائن حالته لا يمكن تعديله بعد إنشائه.لكن يمكننا التحولانهاالقيم بالتطبيقمعينالتحول ، كما هو الحال في RDDs.

مصادر PySpark Dataframe

يمكن إنشاء إطارات البيانات في Pyspark بعدة طرق:

يمكن تحميل البيانات من خلال ملف CSV و JSON و XML أو ملف باركيه. يمكن أيضًا إنشاؤه باستخدام ملف RDD ومن خلال أي قاعدة بيانات أخرى ، مثل خلية نحل أو كاساندرا كذلك. يمكنه أيضًا أخذ بيانات من HDFS أو نظام الملفات المحلي.

إنشاء إطار البيانات

دعنا نمضي قدمًا في مدونة PySpark Dataframe التعليمية ونفهم كيفية إنشاء إطارات البيانات.

سننشئ حالات الموظف والقسم.

من pyspark.sql import * الموظف = الصف ('firstName'، 'lastName'، 'email'، 'الراتب') الموظف 1 = الموظف ('Basher'، 'armbrust'، 'bash@edureka.co'، 100000) الموظف 2 = الموظف ('Daniel'، 'meng'، 'daniel@stanford.edu'، 120000) الموظف 3 = الموظف ('Muriel'، لا شيء، 'muriel@waterloo.edu'، 140000) الموظف 4 = الموظف ('Rachel'، 'wendell '،' rach_3@edureka.co '، 160000) موظف 5 = موظف (' Zach '،' galifianakis '،' zach_g@edureka.co '، 160000) طباعة (موظف [0]) طباعة (موظف 3) القسم 1 = صف (معرف = '123456' ، الاسم = 'HR') القسم 2 = الصف (المعرف = '789012' ، الاسم = 'OPS') القسم 3 = الصف (المعرف = '345678' ، الاسم = 'FN') القسم 4 = الصف (المعرف = ' 901234 '، الاسم =' DEV ')

بعد ذلك ، سننشئ مثيل DepartmentWithEmployees من الموظف والإدارات

DepartmentWithEmployees1 = الصف (القسم = القسم 1 ، الموظفون = [الموظف 1 ، الموظف 2 ، الموظف 5]) القسم مع الموظف 2 = الصف (القسم = القسم 2 ، الموظفون = [الموظف 3 ، الموظف 4]) القسم مع الموظفين 3 = الصف (القسم = القسم 3 ، الموظفون = [الموظف 1 ، الموظف 4 ، الموظف 3 ]) departmentWithEmployees4 = الصف (القسم = القسم 4 ، الموظفون = [الموظف 2 ، الموظف 3])

لنقم بإنشاء Dataframe الخاص بنا من قائمة الصفوف

DepartmentWithEmployees_Seq = [departmentWithEmployees1، departmentWithEmployees2] dframe = spark.createDataFrame (membersWithEmployees_Seq) عرض (dframe) dframe.show ()

Pyspark Dataframes مثال 1: مجموعة بيانات كأس العالم FIFA

هنا أخذنا مجموعة بيانات لاعبي كأس العالم FIFA. سنقوم بتحميل هذه البيانات بتنسيق CSVالىdataframe وبعد ذلك سنتعرف على التحويلات والإجراءات المختلفة التي يمكن إجراؤها على إطار البيانات هذا.

قراءة البيانات من ملف CSV

لنقم بتحميل البيانات من ملف CSV. هنا سنستخدم ملف شرارة .read.csv طريقة لتحميل البيانات في إطار بيانات fifa_df. الطريقة الفعلية هي spark.read.format [csv / json] .

fifa_df = spark.read.csv ('مسار الملف / fifa_players.csv'، inferSchema = True، header = True) fifa_df.show ()

مخطط إطار البيانات

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

fifa_df.printSchema ()

أسماء الأعمدة وعددها (صفوف وعمود)

عندما نريد إلقاء نظرة على الأسماء وعدد الصفوف والأعمدة لإطار بيانات معين ، فإننا نستخدم الطرق التالية.

fifa_df.columns // أسماء الأعمدة fifa_df.count () // عدد الصفوف len (fifa_df.columns) // عدد الأعمدة

37784 8

وصف عمود معين

إذا أردنا إلقاء نظرة على ملخص أي عمود معين من Dataframe ، فإننا نستخدم ملحق يصف طريقة. تعطينا هذه الطريقة الملخص الإحصائي للعمود المحدد ، إذا لم يتم تحديده ، فإنه يوفر الملخص الإحصائي لإطار البيانات.

الانحدار اللوجستي في كود بيثون
fifa_df.describe ('اسم المدرب'). show () fifa_df.describe ('المركز'). show ()

اختيار أعمدة متعددة

إذا أردنا تحديد أعمدة معينة من إطار البيانات ، فإننا نستخدم امتداد تحديد طريقة.

fifa_df.select ('اسم اللاعب' ، 'اسم المدرب'). show ()

تحديد أعمدة متعددة مميزة

fifa_df.select ('اسم اللاعب' ، 'اسم المدرب'). مميز (). show ()

تصفية البيانات

من أجل تصفية البيانات ، وفقًا للشرط المحدد ، نستخدم الامتداد منقي أمر. نحن هنا نقوم بتصفية إطار البيانات الخاص بنا بناءً على الشرط الذي يجب أن يكون معرّف المطابقة مساويًا لـ 1096 ثم نقوم بحساب عدد السجلات / الصفوف الموجودة في الإخراج المصفاة.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // للحصول على العدد

تصفية البيانات (معلمات متعددة)

يمكننا تصفية بياناتنا بناءً على شروط متعددة (و أو أو)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40')). show ()

فرز البيانات (ترتيب حسب)

لفرز البيانات نستخدم ملف ترتيب حسب طريقة. بشكل افتراضي ، يتم فرزها بترتيب تصاعدي ، ولكن يمكننا تغييرها إلى ترتيب تنازلي أيضًا.

fifa_df.orderBy (fifa_df.MatchID). show ()

مثال 2: Superheros Dataset

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

سنقوم هنا بتحميل البيانات بنفس الطريقة التي قمنا بها سابقًا.

Superhero_df = spark.read.csv ('مسار الملف / superheros.csv' ، inferSchema = True ، header = True) Superhero_df.show (10)

تصفية البيانات

Superhero_df.filter (Superhero_df.Gender == 'Male'). count () // عدد الأبطال الذكور Superhero_df.filter (Superhero_df.Gender == 'Female'). count () // عدد الأبطال الإناث

تجميع البيانات

مجموعة من يُستخدم لتجميع إطار البيانات بناءً على العمود المحدد. هنا ، نقوم بتجميع إطار البيانات استنادًا إلى العمود Race ثم مع العد وظيفة ، يمكننا إيجاد عدد العرق المعين.

Race_df = Superhero_df.groupby ('Race') .count (). show ()

تنفيذ استعلامات SQL

يمكننا أيضًا تمرير استعلامات SQL مباشرة إلى أي إطار بيانات ، لذلك نحتاج إلى إنشاء جدول من إطار البيانات باستخدام RegisterTempTable الطريقة ثم استخدم sqlContext.sql () لتمرير استعلامات SQL.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('حدد * من superhero_table'). show ()

sqlContext.sql ('حدد مميزًا (Eye_color) من superhero_table'). show ()

sqlContext.sql ('حدد مميزًا (Eye_color) من superhero_table'). count ()

2. 3

sqlContext.sql ('حدد الحد الأقصى (الوزن) من superhero_table'). show ()

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

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

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