我正在使用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());
但就我而言,这可能会更有效率。
解决此问题的最佳方法是什么?
注意:
答案 0 :(得分:2)
也许“限制”可以更有效:
df.limit(threshold).count()