08:54 معالجة الرسوم البيانية GraphX GraphX في Apache Spark مع Scala - مدونة SPOTO - مواد دراسية مفيدة لدراسة شهادة تكنولوجيا المعلومات
preloader

معالجة الرسوم البيانية GraphX GraphX في Apache Spark مع Scala

مع تطور البيانات الضخمة، تكتسب معالجة الرسوم البيانية زخمًا متزايدًا. يمكن أن تمثل العلاقات المعقدة. تمثل الرسوم البيانية البيانات المترابطة. وهي حيوية لتطبيقات مثل الشبكات الاجتماعية وأنظمة التوصيات. كما أنها تساعد في الكشف عن الاحتيال والمعلوماتية الحيوية. توفر وحدة GraphX في Apache Spark إطار عمل قوي وموزع لمعالجة الرسوم البيانية. وهو مدمج بسلاسة مع نظام Spark البيئي. تتيح GraphX، وهي مكتبة Scala، للمطورين إنشاء تطبيقات رسوم بيانية فعالة وقابلة للتطوير. سكالا هي لغة موجزة وقوية.
تغطي هذه المدونة أساسيات GraphX، وتكاملها مع Scala، وحالات استخدامها. وتتضمن أمثلة لتبدأ بها.
ما هو GraphX؟
GraphX هي مكتبة حوسبة الرسم البياني في Apache Spark. تسمح للمطورين بمعالجة وتحليل الرسوم البيانية واسعة النطاق بكفاءة. يجمع GraphX بين مزايا نظام Spark البيئي وخوارزميات الرسوم البيانية المتخصصة. لديها القدرة على تحمل الأخطاء والحوسبة الموزعة وقابلية التوسع.
الميزات الرئيسية ل GraphX:
1. تمثيل موحد للبيانات:
يوسع GraphX واجهة برمجة تطبيقات Spark RDD. ويضيف تجريدات خاصة بالرسم البياني مثل “الرسم البياني” و”الحافة”. وهذا يجعل من السهل دمج معالجة الرسم البياني مع عمليات Spark الأخرى.
2. خوارزميات الرسم البياني المدمجة:
يتضمن GraphX خوارزميات شائعة مثل PageRank، والمكونات المتصلة، وعد المثلثات. تم تحسين هذه الخوارزميات للبيئات الموزعة.
3. حساب مخصص:
يسمح GraphX للمطورين بتحديد عمليات حسابية مخصصة، مما يتيح المرونة لتحليلات الرسم البياني الخاصة بالمجال.
4. التكامل مع Spark SQL و MLlib:
يمكنك دمج بيانات الرسم البياني مع مكتبات سبارك SQL و MLlib. يتيح لك ذلك إنشاء خطوط أنابيب كاملة لمعالجة البيانات.
إعداد GraphX مع سكالا
للبدء، أنت بحاجة إلى بيئة تطوير Scala وإعداد Apache Spark. في الغالب، يستخدم المطورون SBT (أداة بناء سكالا) لإدارة التبعيات وتجميع المشاريع. إليك كيفية تضمين Spark و GraphX في مشروعك:
تكوين SBT
أضف التبعيات التالية في ملف ‘build.sbt’ الخاص بك:
“`scala
LibraryDependencies += “org.apache.spark” %% “spark-core” % “3.5.0”
LibraryDependencies += “org.apache.spark” %% “spark-graphx” % “3.5.0”
“`
تمثيل الرسم البياني في GraphX
في GraphX، يتكون الرسم البياني من مكونين رئيسيين:
1. الرؤوس:
تمثل الكيانات (العقد) في الرسم البياني. يتم تعريف كل رأس رأس بمعرف فريد ويمكن أن يحمل سمات إضافية.
2. الحواف:
تمثل العلاقات بين الرؤوس. تحتوي كل حافة على رأس مصدر ورأس وجهة ويمكن أن تحتوي أيضًا على سمات.
إنشاء رسم بياني
إليك مثال بسيط لكيفية تعريف رسم بياني في سكالا باستخدام GraphX:
“سكالا
استيراد org.apache.spark.Graphx._
استيراد org.apache.spark.rdd.RDD
استيراد org.apache.spark.sql.SparkSession
كائن GraphXExample {
def main(args: Array[String]): وحدة = {
فال شرارة = SparkSession.builder
.appName(“مثال GraphX GraphX”)
.رئيسي(“محلي[*]”)
.getOrCreate()
val sc = spark.sparkContext
// تحديد القمم
فال رؤوس: RDD[(طويل، سلسلة)] = sc.parallelize(Seq(
(1L، “أليس”),
(2ل ، “بوب”),
(3ل ، “تشارلي”),
(4L، “ديفيد”)، (4L، “ديفيد”),
(5ل ، “إيف”)
))
// تعريف الحواف
حواف: RDD[حافة[سلسلة] = sc.parallelize(Seq(
حافة(1L, 2L, “صديق”),
حافة(2L، 3L، “تابع”),
الحافة(3ل ، 4ل ، “زميل”),
حافة(4L، 5L، “صديق”)، حافة(4L، 5L، “زميل”)،
الحافة(5ل ، 1ل ، “متابعة”))
))
// إنشاء الرسم البياني
رسم بياني: رسم بياني[سلسلة، سلسلة] = رسم بياني(رؤوس، حواف)
// طباعة الرؤوس والحواف
println(“رؤوس:”)
graph.vertices.collect.foreach(println)
طباعة (“الحواف:”)
الرسم البياني.الحواف.collect.foreach(println)
}
}
“` —
عمليات GraphX الشائعة
1. خصائص الرسم البياني الأساسية
يمكنك استخراج الخصائص المفيدة للرسم البياني، مثل عدد الرءوس والأحرف، على النحو التالي:
””
println(s”عدد الرءوس: ${graph.vertices.count.$}”)
println(s”عدد الحواف: ${graph.edges.count.count}”)
“`
2. تصفية الرسم البياني الفرعي
لتصفية مخطط فرعي بناءً على شرط، استخدم الدالة “مخطط فرعي”:
””’
val subgraph = الرسم البياني.subgraph(epred = الحافة => edge.attr = “صديق”)
subgraph.edges.collect.foreach(println)
“`
ينشئ هذا المثال رسمًا بيانيًا فرعيًا يحتوي فقط على حواف مصنفة على أنها “صديق”.
خوارزميات مدمجة في GraphX
يوفر GraphX العديد من الخوارزميات المبنية مسبقًا والتي تبسط مهام تحليلات الرسم البياني الشائعة.
ترتيب الصفحات
يُستخدم ترتيب الصفحات لترتيب العقد بناءً على أهميتها. يتم تطبيقه على نطاق واسع في البحث على الويب والشبكات الاجتماعية.
””سكالا
val ranks = الرسم البياني.pageRank(0.001).vertices
ranks.collect.foreach { حالة (معرف، رتبة) => println(s”Vertex $id له رتبة $rank”)}
“`
المكونات المتصلة
يحدد المخططات الفرعية المتصلة داخل الرسم البياني:
“”’ سكالا
val connectedComponents = الرسم البياني.connectedComponents().vertices
المكونات المتصلة.collect.foreach { حالة (معرف، مكون) => println(s”Vertex $id ينتمي إلى مكون $component”)} }
عد المثلثات
يحسب عدد المثلثات التي يشكّل كل رأس مثلث جزءًا منها:
”’ ‘سكالا
val triangleCounts = الرسم البياني.triangleCounts().vertices
triangleCounts.collect.foreach { حالة (المعرف، العدد) => println(s”Vertex $id جزء من $count مثلثات”)} }
حالات الاستخدام الواقعية
1. تحليل الشبكات الاجتماعية:
يمكن ل GraphX العثور على المجتمعات والأشخاص الرئيسيين والعلاقات في الشبكات الاجتماعية مثل فيسبوك ولينكد إن.
2. أنظمة التوصيات:
استخدام الخوارزميات المستندة إلى الرسم البياني للتوصية بالمنتجات أو الأفلام أو المحتوى بناءً على تفاعلات المستخدم.
3. كشف الاحتيال:
الكشف عن الأنماط الاحتيالية من خلال تحليل شبكات المعاملات وتحديد الحالات الشاذة.
4. الرسوم البيانية المعرفية:
إنشاء الرسوم البيانية المعرفية والاستعلام عنها لمهام مثل البحث الدلالي وفهم اللغة الطبيعية.
أفضل الممارسات لاستخدام GraphX
1. تحسين التخزين:
استخدم تنسيقات بيانات فعالة مثل Parquet أو ORC لتخزين بيانات الرسم البياني.
2. التقسيم:
تقسيم الرسوم البيانية الكبيرة لتحسين التوازي وتقليل عمليات التبديل.
3. إدارة الذاكرة:
استخدم آليات التخزين المؤقت الخاصة ب Spark (“persist” أو “ذاكرة التخزين المؤقت”) لإدارة الذاكرة بفعالية.
4. الاستفادة من برمجة Scala الوظيفية:
بناء جملة سكالا الموجزة والبرمجة الوظيفية تجعل تحويلات الرسم البياني أكثر تعبيرًا وبساطة.
كيف تحصل على شهادة أباتشي سبارك وسكالا؟
نحن شركة تكنولوجيا تعليمية تقدم دورات تدريبية للحصول على الشهادات لتسريع الحياة المهنية للمهنيين العاملين في جميع أنحاء العالم. نحن نقدم التدريب من خلال ورش عمل في الفصول الدراسية بقيادة مدرب، ودورات تدريبية افتراضية مباشرة بقيادة مدرب، ودورات التعلم الإلكتروني ذاتية التعلم.
لقد أجرينا بنجاح دورات تدريبية في 108 دول في جميع أنحاء العالم ومكّنا الآلاف من المهنيين العاملين من تعزيز نطاق حياتهم المهنية.
تشمل محفظتنا التدريبية للمؤسسات دورات تدريبية معتمدة ومعترف بها عالمياً ومطلوبة في إدارة المشاريع، وإدارة الجودة، وتحليل الأعمال، وإدارة خدمات تكنولوجيا المعلومات، و”أجايل” و”سكروم”، والأمن السيبراني، وعلوم البيانات، والتقنيات الناشئة. قم بتنزيل كتالوج تدريب المؤسسات من https://cciedump.spoto.net/ar/
تشمل الدورات الشائعة ما يلي:
إدارة المشاريع: PMP وAPP وCAPM وPMI RMP
إدارة الجودة: الحزام الأسود لستة سيجما، الحزام الأخضر لستة سيجما، إدارة اللين، إدارة اللين، Minitab، CMMI
تحليل الأعمال: CBCAP، CCCBA، ECBA
التدريب الرشيق: PMI ACP، CMS، CSPO، CSPO
تدريب سكروم: CSM
ديف أوبس
إدارة البرامج: PgMP
تكنولوجيا الحوسبة السحابية: الحوسبة السحابية: Exin الحوسبة السحابية
إدارة عميل سيتريكس: إدارة عميل سيتريكس إدارة سحابة سيتريكس: إدارة السحابة
الشهادات الـ 10 الأعلى أجراً المستهدفة في 2024 هي
محترف أمن نظم المعلومات المعتمد (CISSP)
الخاتمة
GraphX هو أداة قوية لمعالجة الرسوم البيانية الموزعة. وهو مدمج مع نظام Apache Spark البيئي ويستخدم مرونة Scala. يتيح GraphX معالجة فعالة وقابلة للتطوير لبيانات الرسم البياني المعقدة. يمكنه تحليل الشبكات الاجتماعية وبناء محركات توصية. من خلال إتقان GraphX و Scala، يمكن للمطورين تحسين تحليلات البيانات. سيكتسبون ميزة تنافسية في البيانات الضخمة.
يحتوي GraphX على الأدوات اللازمة لمواجهة التحديات الصعبة في البيانات المترابطة. وهو يناسب كلاً من علماء البيانات المخضرمين والمطورين الجدد. لذا، ابدأ اليوم! استكشف الإمكانيات المثيرة لتحليلات الرسم البياني مع Apache Spark و Scala!

About the Author

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Related Posts