countApprox () initialValue всегда возвращает одинаковые границы - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть метод для расчета и отображения приблизительного количества строк в кадре данных:

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, бесконечность).Любая помощь в выяснении, что я делаю неправильно, будет принята с благодарностью.

Заранее спасибо!

...