top of page

لذا، استخدم Python Dask لتحليل البيانات وتحليلها

في عالم اليوم الذي يعتمد على البيانات، يعد معالجة وتحليل مجموعات كبيرة من البيانات بكفاءة تحديًا كبيرًا لمطوري البرامج وعلماء البيانات. تعتبر مكتبة معالجة البيانات الكبيرة مثل Pandas بديهية، ويمكن أن يكون هناك عدد كبير من البيانات التي تتحقق من العديد من المنظمات التي تم تغييرها إلى الدليل. راجع Dask-Bibliothek unverzichtbar.


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


في منشور المدونة هذا، سنناقش وظائف Dask-Bibliothek ein، التي تسمح لك بتحسين استخدام البيانات لديك.


تفاصيل مكتبة DASK Python

Dask هي مكتبة مفتوحة المصدر للحوسبة المتوازية تسمح للمستخدمين بتوسيع نطاق تطبيقات Python بكفاءة من جهاز واحد إلى مجموعات كبيرة. بالمقارنة مع Pandas، الذي يعمل بشكل أساسي في الذاكرة، يتميز Dask بإدارة العمليات الحسابية المتوازية ويمكنه تقديم بيانات أكبر من الذاكرة المتوفرة.


المكونات الرئيسية لـ Dask هي:


  • مصفوفات داسك

  • إطارات بيانات Dask

  • حقائب داسك


إن الجمال الحقيقي لـ Dask هو قدرته على التكامل مع مكتبات Python الموجودة والعمل معها بسلاسة.


تثبيت داسك

من فضلك قم بتثبيته أولاً ثم قم بتثبيته.

الرجاء استخدام Dask ganz einfach com pip installieren:


```bash
pip install dask
```

وظائف المجدول هي كما يلي:


```bash
pip install dask[distributed]
```

بعد التثبيت، قم بالتحقق من التثبيت عن طريق التحقق من إصدار DASK في بيئة Python الخاصة بك:

import dask
print(dask.__version__)

Dask-Arrays: الحوسبة خارج النواة

Dask-Arrays هي أداة قوية لمعالجة كميات كبيرة من البيانات الرقمية التي لا تتناسب مع الذاكرة. يمكن تقسيم المصفوفات التي تكون كبيرة جدًا بالنسبة لـ Speicher إلى أجزاء أصغر، مما يسمح بالحوسبة المتوازية.


إنشاء مصفوفات Dask


يمكنك استخدام NumPy لإنشاء مجموعات Dask. على سبيل المثال:

import dask.array as da
import numpy as np

إنشاء مجموعة NumPy كبيرة

numpy_array = np.random.rand(10000, 10000)

إنشاء مجموعة مهام من مجموعة NumPy

x = da.from_array(numpy_array, chunks=(1000, 1000))

أنت تستطيع


التشغيل الأساسي


تدعم Dask-Arrays عمليات NumPy-ähnliche، ويتم تخزينها في البداية عندما يتم شرحها. على سبيل المثال:

result = (x + 1).mean()

لحساب النتيجة، استخدم:

final_result = result.compute()

يمكن أن يؤدي هذا الحل إلى تحسين الأداء بشكل كبير، وخاصة عند العمل مع مجموعات بيانات كبيرة.


Dask DataFrames: واجهة مألوفة للبيانات الضخمة

إذا كنت مثل Pandas، فمن البديهي أن يكون لديك فهم بديهي لـ Dask DataFrames. إنها قادرة على معالجة مجموعات كبيرة من البيانات من خلال واجهة مألوفة، ولكنها تستفيد من المعالجة المتوازية.


إنشاء قواعد بيانات Dask

يمكنك إنشاء Dask DataFrame عن طريق قراءة ملف CSV أو تحويل Pandas DataFrame على النحو التالي:

import dask.dataframe as dd

قراءة ملفات CSV كبيرة الحجم في Dask DataFrame

df = dd.read_csv('large_dataset.csv')

يقوم Vorgang هذا بتقسيم بيانات CSV إلى أقسام متعددة وينفذ التكديس المتوازي. يدعم Dask أيضًا قراءة JSON، وHDF5، وParquet، وOrc، وجداول قواعد البيانات باستخدام SQL. يمكن كتابة Dask DataFrames بتنسيق CSV وHDF5 وParquet وSQL.


عملية داسك-داتانرحمن

يمكن تنفيذ عمليات DataFrame الشائعة مثل التصفية والتجميع دون أي مشاكل:

filtered_df = df[df['avg_gain'] > 30]

Diese Vorgänge sind verzögert, bedeutet, dass Dask

.compute()

وصف منح Dask: المشاريع التي ليس لها تاريخ بناء

تعتبر Dask-Bags مفيدة لمجموعات كائنات Python. يُعد هذا مفيدًا بشكل خاص لمعالجة ملفات JSON أو بيانات النص أو أنواع أخرى من البيانات غير المنظمة. الدالة from_sequence هي Möglichkeit، Python-Iterables zu lesen. وهذا أيضًا درس من أفرو-فورماتن. يمكنه العمل مع تنسيقات CSV وJSON وAvro.


إنشاء حزمة Dask

يمكنك إنشاء حقيبة لوحة القيادة عن طريق قراءة ملف JSON:

import dask.bag as db
bag = db.read_text('data/*.json')

العمل في دونكلين ساكن

يدعم Dask-Taschen التعيينات والمرشحات القياسية. فيما يلي مثال لعملية رسم الخرائط:

mapped_bag = bag.map(lambda x: x['slope'])

يمكنك استخدام المصفوفات وبيانات ".compute()" لإجراء العمليات:

final_output = mapped_bag.compute()

البرمجة باستخدام Dask

المرة الأولى التي تم استخدامها هي المجدول الافتراضي. يعد هذا خيارًا لكل من المجدولين أحاديي الخيوط ومتعددي الخيوط أو العموديين.


مبرمج محلي

يُعد المجدول المحلي سهل الاستخدام لأحمال العمل الصغيرة. إنه يستخدم وظائف Python threading لتنفيذ المهام بالتوازي، مما يجعله مثاليًا للعمليات الحسابية السريعة مع مجموعات البيانات متوسطة الحجم.


مبرمج موزع

في الحالات التي تكون فيها مجموعة البيانات كبيرة أو تكون العمليات الحسابية مكثفة، فإن استخدام وحدة dask.distributed يمكن أن يحسن الأداء بشكل كبير. فيما يلي إعداد سريع:


from dask.distributed import Client
client = Client()  # This starts a local cluster
# or
client = Client(processes=False)

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

dask.config.set(scheduler='threads')
x.compute()

أو كمدير سياق:

with dask.config.set(scheduler='threads'):
 x.compute()

باستخدام Single Machine Scheduler القائم على المجمع، يمكنك استخدام المجمعات المحددة من قبل المستخدم أو تحديد المجمعات المطلوبة ومجموعات العمال:

from concurrent.futures import ThreadPoolExecutor
with dask.config.set(pool=ThreadPoolExecutor(4)):
    x.compute()

with dask.config.set(num_workers=4):
    x.compute()

Wenn Sie هو أحد إصدارات Dask-Cloud-Bereitstellung المتعلقة بـ Kubernetes، ولكن في Dask-Dokumentation


Deckt Szenarien لمختلف Knoten وCloud وKubernetes وHPC ab. في نهاية الوثيقة ستجد كل المعرفة وكل هذه


إذا كانت لديك مشكلة مع مفسر Python، فإن المشكلة هي أن GIL ليس لديه مشكلة، وتنفيذ Workern إلزامي. يمكنك تعديل عدد الخيوط لكل عامل، ولكن يوصى بخيط واحد لكل نواة معالج (CPU أو vCPU).


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

dask worker --nworkers 12 --nthreads 1 tcp://192.0.0.100:8786
# or
dask worker --nworkers 1 --nthreads 12 tcp://192.0.0.100:8786

تموت في خيار Befehlszeileenoptionen، أو تموت في إحدى شلتين أو واحدة من Skript gerunnen werden. CompleteBefehlszeilenreferenz finden


ابدأ تشغيل "مجدول الأوامر" على النحو التالي:

$ dask scheduler
Scheduler at:   tcp://192.0.0.100:8786

لاحظ أن Dask-Worker يبدأ في إصدار Scheduler. أحد الجوانب السلبية لـ Dask (والتي يمكنك التعامل معها، على الرغم من ذلك) هو أنه


عند بدء تشغيل المجدول والعاملين، استخدم خادم الويب التشخيصي وعنوان URL


تحسين الأداء باستخدام Dask

أم أن إمكانات Dask voll auszuschöpfen هي الأفضل في تحسين الأداء. يمكن تحقيق نتائج ممتازة من خلال الاستراتيجيتين التاليتين:


تقسيم البيانات

تصحيح البيانات في überschaubare Blöcke Verbessert die Leistung. على سبيل المثال، في Dask DataFrames، يمكن أن تكون العمليات الحسابية أسرع إذا تم تحديد عدد الأقسام بشكل صريح.


يعتبر Jede Partition في الأساس عبارة عن حزمة Pandas-Datanrahmen، أي وظائف Dask-Datanrahmen ووظائف عائلة Pandas. على سبيل المثال، إذا كنت تريد مجموعة بيانات في إطار بيانات Dask يحتوي على مليار صف و100 قسم، فسوف يقوم Dask ضمناً بإنشاء 10 ملايين إطار بيانات Pandas.


يستخدم Dask وظيفة Datengraf لتنفيذ Datenrahmen مع Pandas. يمكنك استخدام مواصفات معلمات Pandas، ولكن هناك بعض القيود اعتمادًا على إصدار Pandas الذي يستخدمه Dask.


لذلك تجنب القيام بالعديد من المهام الصغيرة.

يمكن لـ Das Erstellen zu Kleiner Aufgaben أن يؤدي إلى عدم الكفاءة. تتطلب كل مهمة الكثير من الجهد، وإذا كانت المهام دقيقة للغاية، فسوف يتم تعويض فوائد المعالجة المتوازية. واحدة من أصغر الخيارات المتاحة في الخارج هي لـ Dask im großen Maßstab أفضل بكثير.


حالات استخدام Dask الشائعة

يوجد جدول زمني متنوع لجدول البيانات والتحليل:


تحليل البيانات على نطاق واسع

تعد إطارات بيانات Dask مثالية لتحليل البيانات الضخمة وتخزين البيانات وميزات تحليلات Pandas القياسية. تحقق من إصدار Pandas الذي يستخدمه Dask لمعرفة الميزات المدعومة.


التعلم الآلي

تثق تكاملات Dask في مكتبة Scikit-learn، وهي ليست معقدة. على سبيل المثال، يمكنك استخدام Dask-ML لتوسيع نطاق مهام التعلم الآلي بكفاءة عبر مجموعات البيانات الكبيرة، مما يؤدي إلى تحسين وقت المعالجة بشكل كبير. يوفر Dask معالجة موازية موزعة لوظائف Python. إذا كان لديك أيضًا وظائف، فيمكنك استخدام وظائف الديكور المتوازية هذه. Allerdings hat die Verschachtelung auch ihre Grenzen.


التواريخ والتغييرات

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


Nutzen Sie Dask لسير عمل البيانات الخاصة بك

تحليل البيانات وتحليلها على نطاق واسع، وخاصة فيما يتعلق بمعالجة البيانات. إذا كنت تفهم الميزات الأكثر أهمية، فيمكنك دمج Dask بشكل فعال في سير عمل علوم البيانات الخاص بك في Python.


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


Sie sind jetzt well gerüstet, um die Leistung von Dask zu nutzen and Ihre Datenverarbeitungsaufgaben effizient and skalierbar zu gestalten.


البرمجة ممتعة!

بيدفورد، ماساتشوستس 01730

bottom of page