java - spark 的 approxQuantile 问题,无法识别 List
问题描述
我在 java8 项目中使用 spark-sql-2.4.1v。
我需要计算以下给定数据框的某些(计算的)列(即)con_dist_1
上的分位数:con_dist_2
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);
它给出了错误:
DataFrameStatFunctions 类型中的方法 approxQuantile(String, double[], double) 不适用于参数 (List, List, double)
这里有什么问题?我在我的eclipseIDE中做这件事。为什么List<String>
即使我通过了它也没有调用List<String>
?
添加了 API 的快照:
解决方案
看起来这可能是由于Array
在函数的输入中使用了approxQuantile
。最简单的解决方法是对列和百分位数都使用数组(这将使用approxQuantile
API 快照中的第三种方法。:
String[] calcColmns = {"con_dist_1", "con_dist_2"};
double[] percentiles = {0.0,0.1,0.5};
然后调用函数:
double[][] quants = df.stat().approxQuantile(calcColmns, percentiles, 0.0);
推荐阅读
- css - 如何在特定级别上进行空格换行?
- bash - 在 Moba 中使用 bash 脚本删除多个文件夹的内容
- r - ggplot中定性变量的累积和
- java - IllegalArgumentException:无法从当前目的地找到导航动作/目的地包名/action_xxx
- php - 具有多个连接的 mysqli Prepared statements 不断返回 false
- python - 小于N的大O?
- powerbi - Power BI,最后一个工作日和最后两个工作日的问题
- linux - Azure Devops 管道,了解管道何时完成的方法,使用自托管代理
- python - GetOldTweets3 - HTTP 请求期间发生错误:HTTP 错误 404:未找到
- javascript - input type="submit" 按钮可以有 HTML 标签吗?