Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Java Cogroup 5 RDD(获取Tuple5或更多)_Java_Apache Spark_Tuples - Fatal编程技术网

Java Cogroup 5 RDD(获取Tuple5或更多)

Java Cogroup 5 RDD(获取Tuple5或更多),java,apache-spark,tuples,Java,Apache Spark,Tuples,我想知道在Spark中是否有可能创建RDD的Tuple5。 我只设法得到了Tuple4,但没有更多 JavaPairRDD<PartitionKey, Tuple4<Iterable<Cat>, Iterable<Dog>, Iterable<Fish>, Iterable<Monkey>>> JavaPairRDD<PartitionKey, Cat> RDD1 = getRDD1();

我想知道在Spark中是否有可能创建RDD的Tuple5。 我只设法得到了Tuple4,但没有更多

    JavaPairRDD<PartitionKey, Tuple4<Iterable<Cat>, Iterable<Dog>, Iterable<Fish>, Iterable<Monkey>>>

    JavaPairRDD<PartitionKey, Cat> RDD1 = getRDD1();
    JavaPairRDD<PartitionKey, Dog> RDD2 = getRDD2();
    JavaPairRDD<PartitionKey, Fish> RDD3 = getRDD3();
    JavaPairRDD<PartitionKey, Monkey> RDD4 = getRDD4();
    JavaPairRDD<PartitionKey, Cow> RDD5 = getRDD5();

    return RDD1.cogroup(RDD2, RDD3, RDD4);
javapairdd
javapairdd RDD1=getRDD1();
javapairdd RDD2=getRDD2();
javapairdd RDD3=getRDD3();
javapairdd RDD4=getRDD4();
javapairdd RDD5=getRDD5();
返回RDD1.cogroup(RDD2、RDD3、RDD4);
你会如何做这样的事情:

JavaPairRDD<PartitionKey, Tuple5<Iterable<Cat>, Iterable<Dog>, Iterable<Fish>, Iterable<Monkey>, Iterable<Cow>>> = RDD1.cogroup(RDD2, RDD3, RDD4, RDD5);
javapairdd=RDD1.cogroup(RDD2、RDD3、RDD4、RDD5);
我真的需要那些奶牛:)

谢谢

我们没有使用cogroup。 我们创建了一个包含每个列表的超级对象

对于5个RDD中的每一个:

oneOfThe5RDD.join(superRDD).mapToPair(tuple -> {

    SuperObject superObject = tuple._2()._1();
    superObject .setListXXX(IteratorUtils.toList(tuple._2()._2().iterator()));
    return new Tuple2<>(tuple._1(), superObject);
});
5rdd.join(superRDD).mapToPair(tuple->{
超级对象超级对象=元组。_2()。_1();
setListXXX(迭代器utils.toList(tuple._2()._2().迭代器());
返回新的Tuple2(tuple._1(),superObject);
});

我也在寻找同样的答案,如果您找到任何线索,请share@rohit我们在没有cogroup的情况下寻求另一个解决方案。。。(迟来的回答,但可能对其他人有帮助)你们能告诉我你们做了什么吗,我认为你们做了一些重构来避免五元组,但若知道这个想法就好了。@rohit请看下面的解决方案。这并不理想,但它为我解决了问题。