Проблема с приблизительным количеством искры, не распознающая список <String> - PullRequest
1 голос
/ 05 марта 2020

Я использую spark- sql -2.4.1v в своем проекте с java8.

Мне нужно рассчитать квантили по некоторым (вычисленным) столбцам (т.е. con_dist_1, * 1004) *) ниже указанного кадра данных df:

+----+---------+-------------+----------+-----------+
|  id|     date|   revenue   |con_dist_1| con_dist_2|
+----+---------+-------------+----------+-----------+
|  10|1/15/2018|  0.010680705|         6|0.019875458|
|  10|1/15/2018|  0.006628853|         4|0.816039063|
|  10|1/15/2018|   0.01378215|         4|0.082049528|
|  10|1/15/2018|  0.010680705|         6|0.019875458|
|  10|1/15/2018|  0.006628853|         4|0.816039063|
|  10|1/15/2018|   0.01378215|         4|0.082049528|
|  10|1/15/2018|  0.010680705|         6|0.019875458|
|  10|1/15/2018|  0.010680705|         6|0.019875458|
|  10|1/15/2018|  0.014933087|         5|0.034681906|
|  10|1/15/2018|  0.014448282|         3|0.082049528|
+----+---------+-------------+----------+-----------+

List<String> calcColmns = Arrays.asList("con_dist_1","con_dist_2")

Когда я пытаюсь использовать первую версию approxQuantile, то есть approxQuantile(List<String>, List<Double>, double), как показано ниже

List<List<Double>> quants = df.stat().approxQuantile(calcColmns , Array(0.0,0.1,0.5),0.0);

Выдает ошибку:

Метод приблизительноQuantile (String, double [], double) в типе DataFrameStatFunctions не применим для аргументов (List, List, double)

Что здесь не так? Я делаю это в моем eclipseIDE. Почему он не вызывает List<String>, хотя я передаю List<String>?

Добавлен снимок API:

enter image description here

1 Ответ

1 голос
/ 06 марта 2020

Похоже, это может быть связано с использованием Array во входах функции approxQuantile. Простейшим решением будет использование массивов как для столбцов, так и для процентилей (при этом будет использоваться третий approxQuantile метод в снимке API. 1008 *

...