java - Cogroup 5 RDD(获取Tuple5或更多)

标签 java apache-spark tuples

我想知道 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);

你会如何做这样的事情:

JavaPairRDD<PartitionKey, Tuple5<Iterable<Cat>, Iterable<Dog>, Iterable<Fish>, Iterable<Monkey>, Iterable<Cow>>> = RDD1.cogroup(RDD2, RDD3, RDD4, RDD5);

我真的需要那些牛:)

谢谢

最佳答案

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

对于 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);
});

关于java - Cogroup 5 RDD(获取Tuple5或更多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34901887/

相关文章:

scala - yarn 上的 Spark ;如何将指标发送到 Graphite 水槽?

apache-spark - Spark独立安装无法连接到master

Scala - tuple3 - 语法糖

python - 解压元组内的元组

python - python 元组的内部结构

java - 如何获取客户端的时区

java - Eclipse:以编程方式创建动态 Web 项目

java - Spark : createDataset() into a Dataset<Row>?

java - 验证有向图和无向图的 DFS 复杂性

java - Guice 辅助注入(inject)单例范围