البرمجة

تقسيم عمود واحد إلى ثلاثة في Spark Scala

لتحقيق الهدف المذكور، يمكنك استخدام وظيفة split() في Spark Scala لتقسيم القيم في العمود المحدد بناءً على فاصل معين، ثم استخدام الدالة withColumn() لإنشاء عمود جديد لكل جزء من القيم المقسمة. إليك كيف يمكن تنفيذ ذلك:

scala
import org.apache.spark.sql.functions.{split, col} // قم بتقسيم العمود المحدد وإنشاء عمود جديد لكل جزء val splitDF = test.withColumn("col1", split(col("columnToSplit"), "\\.").getItem(0)) .withColumn("col2", split(col("columnToSplit"), "\\.").getItem(1)) .withColumn("col3", split(col("columnToSplit"), "\\.").getItem(2)) // اختر فقط الأعمدة المطلوبة وعرضها val resultDF = splitDF.select("col1", "col2", "col3") resultDF.show()

في هذا الكود، نستخدم دالة split() لتقسيم قيم العمود columnToSplit باستخدام نقطة كفاصل، ثم نستخدم getItem() لاسترداد كل جزء من القيمة المقسمة. بعد ذلك، ننشئ عمودًا جديدًا لكل جزء باستخدام withColumn().

ثم، نختار الأعمدة التي نريد عرضها في النهاية باستخدام select()، ونعرض النتيجة باستخدام show().

هذا الكود سيعطيك النتيجة المطلوبة التي تمثل العمود المقسم إلى 3 أعمدة.

المزيد من المعلومات

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

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

في البداية، يتم تحميل البيانات من DataFrame الحالي. يمكن ذلك باستخدام الأمر spark.read أو باستخدام المتغير المسبقاً المعرف بالبيانات، وفي هذه الحالة تم افتراض وجود DataFrame يسمى test.

scala
import org.apache.spark.sql.functions.{split, col} val splitDF = test.withColumn("col1", split(col("columnToSplit"), "\\.").getItem(0)) .withColumn("col2", split(col("columnToSplit"), "\\.").getItem(1)) .withColumn("col3", split(col("columnToSplit"), "\\.").getItem(2))

ثم، بعد تقسيم البيانات، يتم اختيار الأعمدة التي تم إنشاؤها حديثاً باستخدام select().

scala
val resultDF = splitDF.select("col1", "col2", "col3")

أخيرًا، يمكن عرض النتيجة المعالجة عن طريق استخدام الأمر show().

scala
resultDF.show()

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

زر الذهاب إلى الأعلى