Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Scala apache spark解决序列问题_Scala_Apache Spark_Parallel Processing - Fatal编程技术网

使用Scala apache spark解决序列问题

使用Scala apache spark解决序列问题,scala,apache-spark,parallel-processing,Scala,Apache Spark,Parallel Processing,在Scala Spark上,给定S和B的排序数据集,选择排序最低的S和B对,确保每个S和B的值唯一 样本输入: |Rank|S |B | |----|---|---| | 1|S1 |B1 | | 2|S2 |B1 | | 3|S3 |B1 | | 4|S1 |B2 | | 5|S3 |B1 | | 6|S2 |B2 | 样本输出: |Rank|S |B | |----|---|---| | 1|S1 |B1 | | 6|S2 |B2 | 我理解如何按

在Scala Spark上,给定S和B的排序数据集,选择排序最低的S和B对,确保每个S和B的值唯一

样本输入:

|Rank|S  |B  |
|----|---|---|
|   1|S1 |B1 |
|   2|S2 |B1 |
|   3|S3 |B1 |
|   4|S1 |B2 |
|   5|S3 |B1 |
|   6|S2 |B2 |
样本输出:

|Rank|S  |B  |
|----|---|---|
|   1|S1 |B1 |
|   6|S2 |B2 |

我理解如何按顺序解决这个问题,但是,是否可以使用Spark解决它?如果是这样,怎么做?

这只是部分解决方案,但我认为如果您的分区做得正确,您可以使用
mapPartitions
来完成每个分区的工作。如下所示:

val-rdd:rdd[(Int,String,String)]=。。。
rdd.mapPartitions{it=>
it.foldLeft(List.empty[(Int,String,String)]){
案例(无,e)=>列表(e)
案例((i,ci1,ci2)::tail,(j,cj1,cj2))=>
如果(ci1==cj1 | | ci2==cj2)
(i,ci1,ci2)::尾部
其他的
(j,cj1,cj2):(i,ci1,ci2)::尾
}
}

为什么输出中不存在“2 S1 B2”?“2不是那一对的最低等级吗?”LizardKing,因为S1只能出现一次,而组合S1 B1的等级较低。