gpt4 book ai didi

java - 迭代 JavaPairRDD - 根据某些条件返回

转载 作者:行者123 更新时间:2023-12-01 11:20:52 24 4
gpt4 key购买 nike

我有一个 JavaPaidRDD,我试图根据某些条件迭代并返回元素,而不是 JavaPaidRDD 中的所有记录。

请参阅下面的代码我想要实现的目标。

如果Optional有任何元素Present[if(_22.isPresent())],我不想返回。但我无法在那里使用继续

还有其他我们可以做到的吗?我们可以使用reduceBy来实现这一点吗?

JavaPairRDD<String, Tuple2<Model, Optional<Model>>> leftOuterJoin = cfRDD.leftOuterJoin(mfRDD);
JavaRDD<Model> map = leftOuterJoin.map(tuple -> {
Tuple2<Model, Optional<Model>> _2 = tuple._2();
Model _1 = _2._1();
Optional<Model> _22 = _2._2();
if(_22.isPresent()) {
//do not return anything
//continue;
}
return _1;
});

最佳答案

您正在寻找的是一个 flatMap,在这种情况下,您将在函数内部而不是尝试使用 continue 返回一个空列表,如果您确实想返回该值只需返回一个迭代器,其中包含该值。然后,Spark 将生成值的 RDD,并且条件不成立的所有值都不会成为结果的一部分。另一种选择是在映射输入之前过滤输入,因此只有通过条件的元素才需要映射。

关于java - 迭代 JavaPairRDD - 根据某些条件返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31239009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com