"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > FireDucks: احصل على أداء يفوق أداء الباندا بدون تكلفة تعليمية!

FireDucks: احصل على أداء يفوق أداء الباندا بدون تكلفة تعليمية!

تم النشر بتاريخ 2024-11-06
تصفح:119

تعد Pandas إحدى المكتبات الأكثر شهرة، وعندما كنت أبحث عن طريقة أسهل لتسريع أدائها، اكتشفت FireDucks وأصبحت مهتمًا بها!

المقارنة مع الباندا: لماذا FireDucks؟

قد يواجه برنامج Pandas مشكلة خطيرة في الأداء اعتمادًا على كيفية كتابته. ومع ذلك، كوني عالم بيانات، أرغب في قضاء المزيد والمزيد من الوقت في تحليل البيانات بدلاً من تحسين أداء التعليمات البرمجية الخاصة بي. لذا، سيكون أمرًا رائعًا لو تمكن من القيام بشيء مثل تبادل ترتيب العمليات وتسريع أداء البرنامج تلقائيًا. على سبيل المثال، العملية أ => العملية ب ستكون أبطأ، لذلك سنستبدلها بالعملية ب => العملية أ. (بالطبع، النتيجة مضمونة أن تكون هي نفسها.) يقال إن علماء البيانات ينفقون حوالي 45% من الوقت الذي قضوه في إعداد البيانات، وعندما كنت أفكر في القيام بشيء ما لتسريع العملية، عثرت على وحدة تسمى FireDucks.

من وثائق FireDucks، يبدو أنه مدعوم لمنصات Linux فقط. نظرًا لأنني أستخدم Windows على جهازي الرئيسي، فأنا أرغب في تجربته من WSL2 (نظام Windows الفرعي لنظام Linux)، وهي بيئة يمكنها تشغيل Linux على Windows.

البيئة التي جربتها هي كما يلي.

  • نظام التشغيل مايكروسوفت ويندوز 11 برو
  • الإصدار 10.0.22631 النسخة 22631
  • طراز النظام Z690 Pro RS
  • نوع النظام المستند إلى x64
  • معالج الكمبيوتر الشخصي من الجيل الثاني عشر Intel(R) Core(TM) i3–12100، 3300 ميجاهرتز، 4 مراكز، 8 معالجات منطقية
  • منتج اللوحة الأساسية Z690 Pro RS
  • سطح المكتب لدور النظام الأساسي
  • الذاكرة الفعلية المثبتة (RAM)64.0 جيجابايت

تثبيت وتكوين FireDucks

قم بتثبيت WSL

تم تثبيت WSL بمساعدة وثائق Microsoft التالية؛ توزيعة Linux هي Ubuntu 22.04.1 LTS.

قم بتثبيت FireDucks

ثم قم بالفعل بتثبيت FireDucks. ومع ذلك، فمن السهل جدًا تثبيته.
تثبيت النقطة Fireucks

سيستغرق تثبيت FireDucks بضع دقائق (جنبًا إلى جنب مع pyarrow وpandas والمكتبات الأخرى).

لقد حاولت تنفيذ التعليمات البرمجية أدناه، وكانت سرعة التحميل سريعة جدًا، واستغرق الباندا 4 ثوانٍ، واستغرق FireDucks 74.5 نانو ثانية فقط.

# 1. analysis based on time period and creative duration
# convert timestamp to date/time object
df['timestamp_converted'] = pd.to_datetime(df['timestamp'], unit='s ')

# define time period 
def get_part_of_day(hour): 
  if 5 



استغرقت كل هذه المعالجة المسبقة للبيانات وتحليلها حوالي 8 ثوانٍ في الباندا، بينما يمكن إكمالها في غضون 4 ثوانٍ عند استخدام FireDucks. يمكن تحقيق سرعة مضاعفة تقريبًا.

تحسين الأداء

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

أما بالنسبة للأداء الآخر، فيبدو أنه تم تحقيق أسرع بما يصل إلى 16 مرة مقارنة بالباندا، كما أعلنت المنظمة رسميًا. (سأقارن الأداء مع مختلف المكتبات المنافسة في المرة القادمة.)

FireDucks: Get performance beyond pandas with zero learning cost!

تكلفة التعلم صفر

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

على سبيل المثال، إذا كنت تريد إضافة أعمدة ذات أقطاب، عليك كتابة شيء مثل هذا.

# pandas df["new_col"] = df["A"]   1
# polars 
df = df.with_columns((pl.col("A")   1).alias("new_col"))

لا حاجة تقريبًا لتغيير الكود الموجود

لدي العديد من ETLs والمشاريع الأخرى التي تستخدم الباندا، وسيكون من الجيد رؤية تحسن في الأداء فقط عن طريق تثبيت بيان الاستيراد واستبداله بـ FireDucks.

إذا كنت تريد إضافتها بشكل أكبر، فلا تتردد في التعليق أدناه.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/codewithved/fireducks-get-performance-beyond-pandas-with-zero-learning-cost-9do?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3