Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 在spark中,如果我想连接两对,并且对值是DenseMatrix,我应该怎么做?_Scala_Apache Spark - Fatal编程技术网

Scala 在spark中,如果我想连接两对,并且对值是DenseMatrix,我应该怎么做?

Scala 在spark中,如果我想连接两对,并且对值是DenseMatrix,我应该怎么做?,scala,apache-spark,Scala,Apache Spark,例如: Input: RDD[arraySeq((arraySeq(1),DenseMatrix(2,3)), (arraySeq(2),DenseMatrix(5,7)), (arraySeq(4),DenseMatrix(7,8)), ((arraySeq(1),DenseMatrix(10,23)))] Output: RDD[(double(1), Vector(2,3,10,23)), (double(2), Vector(5,7)), (double(4), Vector(7,8))

例如:

Input: RDD[arraySeq((arraySeq(1),DenseMatrix(2,3)), (arraySeq(2),DenseMatrix(5,7)), (arraySeq(4),DenseMatrix(7,8)), ((arraySeq(1),DenseMatrix(10,23)))]
Output: RDD[(double(1), Vector(2,3,10,23)), (double(2), Vector(5,7)), (double(4), Vector(7,8))]
我搜索了“combineByKey,reduceByKey”,他们似乎能够解决这个问题,但我不知道如何编写代码

此外,如果输入为:

arraySeq((arraySeq(1),DenseMatrix(2,3)),(arraySeq(2),DenseMatrix(5,7)),(arraySeq(4),DenseMatrix(7,8)),((arraySeq(1),DenseMatrix(10,23))

这意味着输入不是RDD,如果我想获得输出,应该怎么做:

(双(1),DenseVector(2,3,10,23)),(双(2),DenseVector(5,7)),(双(4),DenseVector(7,8))
,输出也不是RDD。

试试这个

val pairs = List((1,Seq(2,3)), (2,Seq(5,7)), (4,Seq(7,8)), ((1,Seq(10,23))))
val pairsRdd = sc.parallelize(pairs)
pairsRdd.reduceByKey((a,b)=>a++b).collect
输出:

res0: Array[(Int, Seq[Int])] = Array((1,List(2, 3, 10, 23)), (2,List(5, 7)), (4,List(7, 8)))

请让我知道,如果你正在寻找我发布的答案以外的其他答案。嗨,很抱歉我的类型定义不清楚,我已经更改了我的问题,输入和输出的类型是规定的,所以可能你的答案不太合适,你能帮我回答新的问题吗?没问题,我正在解决你的问题,我会回到你身边一旦我找到了解决方案。可能OP是在寻找元组而不是序列。类型如下:
Array[(Int,(Int,Int,Int,Int,Int))]
很抱歉我的类型定义不清楚,我已经更改了输入和输出元组类型