有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaApacheSpark是触发RDD转换的最便宜的方法

我是ApacheSpark的新手,我已经建立了一个独立的集群来运行大量数据(整数)的排序算法

我让它按我想要的方式工作。核心内容如下:

JavaRDD<Integer> rdd = ctx
                .parallelize(Collections.<Integer>emptyList(), PARTITIONS)
                .mapPartitions(partition ->
                        ThreadLocalRandom
                                .current()
                                .ints(NUMBERS_PER_PARTITION, Integer.MIN_VALUE, Integer.MAX_VALUE)
                                .boxed()

                                .parallel()
                                .collect(Collectors.toList()))
                .sortBy(x -> x, true, PARTITIONS);

这将在集群中生成随机数,然后对它们进行排序

问题是,我只对实验的排序时间感兴趣,但Spark很懒,排序只能通过给定的操作触发。我正在使用count()来触发排序,但是完成计数需要很长时间,因此会延迟我的实验。我不在乎得到排序的数字,甚至不在乎它的样本,因为我已经知道它的排序是正确的

有没有一种方法可以在不必等待触发它的操作完成的情况下触发.sortBy()?如果没有,还有比count()更便宜的行动吗


共 (1) 个答案