apache spark - অ্যারেতে সাধারণ উপাদান অনুসারে কীভাবে গ্রুপ করবেন?



apache-spark apache-spark-sql (1)

graphframes অন্তর্ভুক্ত করুন (সর্বশেষ সমর্থিত স্পার্ক সংস্করণটি ২.১, তবে এটিও ২.২ সমর্থন করা উচিত, আপনি যদি আরও নতুন ব্যবহার করেন তবে আপনাকে নিজের তৈরি করতে হবে ২.৩ প্যাচ) স্পার্ক সংস্করণ এবং YYY স্কালার সংস্করণ দিয়ে প্রতিস্থাপন করুন:

spark.jars.packages  graphframes:graphframes:0.5.0-sparkXXX-s_YYY

বিস্ফোরণ কী যুক্ত করুন:

import org.apache.spark.sql.functions._

val df = Seq(
   (Seq("k1", "k2"), "v1"), (Seq("k2"), "v2"),
   (Seq("k3", "k2"), "v3"), (Seq("k4"), "v4")
).toDF("key", "value")

val edges = df.select(
  explode($"key") as "src", $"value" as "dst")

graphframe রূপান্তর করুন:

import org.graphframes._

val gf = GraphFrame.fromEdges(edges)

চেকপয়েন্ট ডিরেক্টরি সেট করুন (যদি সেট না করা থাকে):

import org.apache.spark.sql.SparkSession

val path: String = ???
val spark: SparkSession = ???
spark.sparkContext.setCheckpointDir(path)

সংযুক্ত উপাদানগুলি সন্ধান করুন:

val components = GraphFrame.fromEdges(edges).connectedComponents.setAlgorithm("graphx").run

ইনপুট ডেটা সহ ফলাফল যোগদান করুন:

 val result = components.where($"id".startsWith("v")).toDF("value", "group").join(df, Seq("value"))

পরীক্ষার ফলাফল:

result.show

// +-----+------------+--------+
// |value|       group|     key|
// +-----+------------+--------+
// |   v3|489626271744|[k3, k2]|
// |   v2|489626271744|    [k2]|
// |   v4|532575944704|    [k4]|
// |   v1|489626271744|[k1, k2]|
// +-----+------------+--------+

আমি অ্যারের মধ্যে একটি সাধারণ উপাদান সহ গ্রুপ ডেটা স্পার্কে সমাধানটি সন্ধান করার চেষ্টা করছি।

 key                            value
[k1,k2]                         v1
[k2]                            v2
[k3,k2]                         v3
[k4]                            v4

যদি কোনও উপাদান কী-তে মেলে, তবে আমাদের সেই একই গ্রুপিড নির্ধারণ করতে হবে Group (গ্রুপবাই সাধারণ উপাদান)

ফলাফল:

key                             value  GroupID
[k1,k2]                           v1    G1
[k2]                              v2    G1
[k3,k2]                           v3    G1 
[k4]                              v4    G2

স্পার্ক গ্রাফিক্সের সাথে ইতিমধ্যে কিছু পরামর্শ দেওয়া হয়েছে, তবে এই মুহুর্তে শিখনের বক্ররেখা একটি বৈশিষ্ট্যের জন্য এটি বাস্তবায়নের জন্য আরও বেশি হবে।





apache-spark-sql