Apache Spark هو محرك تحليلات مفتوح المصدر للبيانات الكبيرة. لقد غير نوعًا ما اللعبة للمنظمات التي تتعامل مع أحمال بيانات ضخمة. Spark سريع. سريع جدًا. يستخدم معالجة في الذاكرة تجعله يتجاوز الأطر التقليدية - أسرع بحوالي 100 مرة من MapReduce لعمليات الذاكرة. الأشياء المبنية على القرص؟ لا يزال أسرع بعشر مرات.
الميزات البارزة لـ Spark
Spark يمنحك هذا النظام البيئي الكامل:
السرعة: محرك في الذاكرة يعالج البيانات بسرعة كبيرة
المرونة: يقوم بكل أنواع الأمور - SQL، التعلم الآلي، الأشياء في الوقت الحقيقي، الرسوم البيانية
منصة موحدة: تتوافق بشكل جيد مع مصادر البيانات المختلفة
المعالجة الموزعة: توزيع العمل عبر المجموعات لمجموعات البيانات الضخمة
مكتبات غنية: تحتوي على MLlib لتعلم الآلة. وأيضًا Spark Streaming. وGraphX لتحليلات الرسوم البيانية.
داخل بنية سبارك
تشمل العناصر الأساسية في Apache Spark ما يلي:
سائق الشرارة: لديه جميع هذه المجدولين والمديرين الذين يحولون الكود الخاص بك إلى وظائف
المنفذون: هؤلاء يقومون بالحسابات الفعلية
مديرو الكلاستر: يمكن أن يكونوا مستقلين، YARN، أو أي شيء آخر. إنهم يلتقطون عقد العمل.
عقد العمل: الخوادم التي تقوم بالعمل الشاق
UDFs في PySpark: اجعل Spark خاصًا بك
تتيح لك Spark توسيعها باستخدام الدوال المعرفة من قبل المستخدم. أشياء رائعة حقًا. تتيح لك هذه الدوال في PySpark إنشاء منطق مخصص عندما لا تكون الدوال المضمنة كافية.
اصنع UDF مثل هذا:
بايثون
من pyspark.sql.functions import udf
من pyspark.sql.types استيراد StringType
تعريف دالة بايثون
ديف convert_case(text):
إرجاع text.upper() إذا كان النص آخر لا شيء
يبدو أن الضبط الجيد يتضمن أشياء تتعلق بالذاكرة. إعدادات التقسيم أيضًا. يمكن أن يكون لجمع القمامة تأثير كبير. قد تساعد خيارات التسلسل في الأداء.
Spark يستمر في التطور. إنه كبير في عالم البيانات. ليس مثالياً، لكنه مهم جداً.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
ما هو كل شيء عن أباتشي سبارك؟
Apache Spark هو محرك تحليلات مفتوح المصدر للبيانات الكبيرة. لقد غير نوعًا ما اللعبة للمنظمات التي تتعامل مع أحمال بيانات ضخمة. Spark سريع. سريع جدًا. يستخدم معالجة في الذاكرة تجعله يتجاوز الأطر التقليدية - أسرع بحوالي 100 مرة من MapReduce لعمليات الذاكرة. الأشياء المبنية على القرص؟ لا يزال أسرع بعشر مرات.
الميزات البارزة لـ Spark
Spark يمنحك هذا النظام البيئي الكامل:
داخل بنية سبارك
تشمل العناصر الأساسية في Apache Spark ما يلي:
UDFs في PySpark: اجعل Spark خاصًا بك
تتيح لك Spark توسيعها باستخدام الدوال المعرفة من قبل المستخدم. أشياء رائعة حقًا. تتيح لك هذه الدوال في PySpark إنشاء منطق مخصص عندما لا تكون الدوال المضمنة كافية.
اصنع UDF مثل هذا:
بايثون من pyspark.sql.functions import udf من pyspark.sql.types استيراد StringType
تعريف دالة بايثون
ديف convert_case(text): إرجاع text.upper() إذا كان النص آخر لا شيء
تسجيل كـ UDF
upper_case_udf = udf(convert_case ، StringType())
قدم إلى DataFrame
df = df.withColumn("upper_text", upper_case_udf(df.text_column))
لكن UDFs ليست مثالية. إنها أبطأ من الدوال المدمجة بسبب أمور التسلسل. ربما جرب UDFs الموجهة نحو المتجهات إذا كانت السرعة مهمة. استخدمها بحذر.
تعديل Spark باستخدام spark-defaults.conf
يمكنك التحكم في Spark من خلال ملف spark-defaults.conf هذا. إنه مجرد أزواج من الخصائص والقيم:
spark.master = غزل spark.executor.memory=4 جرام spark.driver.memory = 2 جرام spark.executor.cores=2 spark.sql.shuffle.partitions=200
يبدو أن الضبط الجيد يتضمن أشياء تتعلق بالذاكرة. إعدادات التقسيم أيضًا. يمكن أن يكون لجمع القمامة تأثير كبير. قد تساعد خيارات التسلسل في الأداء.
Spark يستمر في التطور. إنه كبير في عالم البيانات. ليس مثالياً، لكنه مهم جداً.