Pair RDD元组比较
Pair RDD tuple comparison
我正在学习如何使用 spark 和 scala,我正在尝试编写一个 scala spark 程序来接收和输入字符串值,例如:
12 13
13 14
13 12
15 16
16 17
17 16
我最初用以下方法创建我的 rdd 对:
val myRdd = sc.textFile(args(0)).map(line=>(line.split("\s+"))(0),line.split("\s+")(1))).distinct()
现在这就是我卡住的地方。在这组值中有像 (12,13) 和 (13,12) 这样的实例。在数据的上下文中,这两个是相同的实例。简单地说 (a,b)=(b,a)。
我需要创建一个具有其中之一但不能同时具有两者的 RDD。因此,一旦完成,结果将如下所示:
12 13
13 14
15 16
16 17
目前我能看到的唯一方法是我需要取一个元组并将它与 RDD 中的其余元组进行比较,以确保它不是刚刚交换的相同数据。
只需要在创建元组之前对数字进行排序。
val myRdd = sc.textFile(args(0))
.map(line => {
val nums = line.split("\s+").sorted
(nums(0), nums(1))
}).distinct
我正在学习如何使用 spark 和 scala,我正在尝试编写一个 scala spark 程序来接收和输入字符串值,例如:
12 13
13 14
13 12
15 16
16 17
17 16
我最初用以下方法创建我的 rdd 对:
val myRdd = sc.textFile(args(0)).map(line=>(line.split("\s+"))(0),line.split("\s+")(1))).distinct()
现在这就是我卡住的地方。在这组值中有像 (12,13) 和 (13,12) 这样的实例。在数据的上下文中,这两个是相同的实例。简单地说 (a,b)=(b,a)。
我需要创建一个具有其中之一但不能同时具有两者的 RDD。因此,一旦完成,结果将如下所示:
12 13
13 14
15 16
16 17
目前我能看到的唯一方法是我需要取一个元组并将它与 RDD 中的其余元组进行比较,以确保它不是刚刚交换的相同数据。
只需要在创建元组之前对数字进行排序。
val myRdd = sc.textFile(args(0))
.map(line => {
val nums = line.split("\s+").sorted
(nums(0), nums(1))
}).distinct