gpt4 book ai didi

scala - 减少潜在的空 RDD

转载 作者:行者123 更新时间:2023-12-04 16:01:23 31 4
gpt4 key购买 nike

所以我遇到了一个问题,我在 RDD 上使用的过滤器可能会创建一个空的 RDD。我觉得执行 count() 以测试是否为空会非常昂贵,并且想知道是否有更高效的方法来处理这种情况。

以下是此问题可能是什么样子的示例:

    val b:RDD[String] = sc.parallelize(Seq("a","ab","abc"))


println(b.filter(a => !a.contains("a")).reduce(_+_))

会给结果
empty collection
java.lang.UnsupportedOperationException: empty collection
at org.apache.spark.rdd.RDD$$anonfun$reduce$1$$anonfun$apply$36.apply(RDD.scala:1005)
at org.apache.spark.rdd.RDD$$anonfun$reduce$1$$anonfun$apply$36.apply(RDD.scala:1005)
at scala.Option.getOrElse(Option.scala:120)
at org.apache.spark.rdd.RDD$$anonfun$reduce$1.apply(RDD.scala:1005)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:147)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:108)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:306)
at org.apache.spark.rdd.RDD.reduce(RDD.scala:985)

有没有人对我应该如何解决这个边缘情况有任何建议?

最佳答案

考虑 .fold("")(_ + _)而不是 .reduce(_ + _)

关于scala - 减少潜在的空 RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211388/

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