如何将每个RDD分区限制为仅'n'个记录?

时间:2019-09-20 04:43:12

标签: java apache-spark

有没有一种方法可以将每个JavRDD分区指定为仅具有'n'个记录?

 JavaRDD<String> res = rdd.mapPartitions((Iterator<String> iter) -> {
            Iterable<String> iterable = () -> iter;
            return StreamSupport.stream(iterable.spliterator(), false)
                    .map(s -> Dummy.getResponse(s, b))
                    .iterator();
        });

1 个答案:

答案 0 :(得分:0)

如果您知道有多少条记录,则可以推断出需要保留n条记录然后使用rdd.repartition(number of partitions)的分区数

在这里参考:https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.RDD@repartition(numPartitions:Int)(implicitord:Ordering[T]):org.apache.spark.rdd.RDD[T]