У меня есть метод для расчета и отображения приблизительного количества строк в кадре данных:
public static void countApprox(String csvPath, long timeout, double confidence) {
Dataset<Row> table = spark.read().csv(csvPath);
final PartialResult<BoundedDouble> result = table.javaRDD().countApprox(timeout, confidence);
System.out.println("init mean value: " + result.initialValue().mean()); //is always 0
System.out.println("init value high: " + result.initialValue().high()); //is always infinity
System.out.println("init value low: " + result.initialValue().low()); //is always 0
new Thread(new Runnable() {
public void run() {
System.out.println("calculating final values...");
long initTime = System.currentTimeMillis();
System.out.println("final value high: " + result.getFinalValue().high());
System.out.println("final value low: " + result.getFinalValue().low());
double timeTaken = (System.currentTimeMillis() - initTime)/1000.0;
System.out.println("time taken: " + timeTaken + " second(s)");
}
}).start();
}
Проблема в том, какие параметры я предоставляю для тайм-аута и достоверности (значение тайм-аута меньше, чемфактическое время, необходимое для подсчета), результаты для начальных значений низких, средних и высоких значений всегда одинаковы: (0,0, 0,0, бесконечность).Любая помощь в выяснении, что я делаю неправильно, будет принята с благодарностью.
Заранее спасибо!