Я использую 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());
Но в моем случае это может быть намного эффективнее.
Как лучше всегорешить эту проблему?
Примечание:
- Я думал, перебирая свои данные, вручную подсчитывая строки и останавливаясь, когда я достигаю порога, но я не уверен, что это лучшийрешение.