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
Apache spark 查找RDD中满足给定谓词的第一个元素_Apache Spark - Fatal编程技术网

Apache spark 查找RDD中满足给定谓词的第一个元素

Apache spark 查找RDD中满足给定谓词的第一个元素,apache-spark,Apache Spark,如何在普通RDD中找到满足谓词的第一个元素(因为在PairRDD中,我们可以使用lookup(key)API)?在找到第一个元素后,它应该退出RDD遍历。 正在寻找不使用旧for循环的解决方案。如何 rdd.filter(p).top(1) 或者如果您在RDD上没有订单 rdd.filter(p).take(1) 上述解决方案完全正确。下面是实现相同目标的另一种方法 rdd.filter(p).first 好办法。但是过滤器仍然遍历整个RDD。对的我们如何消除它呢?不,所有的转换都是惰性的

如何在普通RDD中找到满足谓词的第一个元素(因为在PairRDD中,我们可以使用lookup(key)API)?在找到第一个元素后,它应该退出RDD遍历。 正在寻找不使用旧for循环的解决方案。

如何

rdd.filter(p).top(1)
或者如果您在RDD上没有订单

rdd.filter(p).take(1)

上述解决方案完全正确。下面是实现相同目标的另一种方法

rdd.filter(p).first

好办法。但是过滤器仍然遍历整个RDD。对的我们如何消除它呢?不,所有的转换都是惰性的,所以当没有更多的元素被请求时,它将停止遍历。太好了。因此,过滤器转换将在找到满足谓词的第一个元素时停止。这个值将被赋予驾驶员。对吗?没错。但是,在集群设置中,找到的第一个元素可能不是原始RDD的第一个元素。明白了。第一个元素将来自RDD分区首先满足条件的执行器。谢谢你的快速回答。