火花检查数据集中是否存在至少n个元素

时间:2018-09-11 14:01:14

标签: apache-spark apache-spark-dataset

我正在使用Spark(2.3.1)对数据集进行一些处理。出于某种原因,我想在执行计算之前先了解数据集中是否有足够的数据。

执行此操作的基本解决方案如下:

int count = myDataset.count();
int threshold = 100;

if (count>threshold){
    // compute
}else{
    System.out.println("Not enough data to do computation");
}

但这确实效率低下。另一种效率更高的解决方案是使用countApprox()函数。

int count = (long) (myDataset.rdd().countApprox(1000,0.90).getFinalValue().mean());

但就我而言,这可能会更有效率。

解决此问题的最佳方法是什么?

注意:

  • 我当时正在考虑遍历数据,手动计数行并在达到阈值时停止,但是我不确定这是最佳解决方案。

1 个答案:

答案 0 :(得分:2)

也许“限制”可以更有效:

df.limit(threshold).count()