SparkSQL四重表

时间:2017-09-15 11:22:37

标签: sql apache-spark-sql

我实施了一个随机森林算法来预测某些东西。 算法后的我的数据库表:

id      order       order_forecast
-----------------------------------------------
1       yes         yes
2       yes         no
3       no          yes
4       no          no
5       yes         yes
6       no          yes
7       yes         no
8       yes         yes
9       yes         yes

现在我想创建一种四重表来检查随机森林是否正确。

e.g。

       yes             no
   -------------------------------
yes  |  4              2
no   |  2              1


Correct classified: 5
Wrong classified: 4
Accuracy: 55,55%
Error:    44,44%

有任何功能或任何简短的方法吗? 正如我所说我正在使用浏览器界面,我不知道我正在使用哪个DBMS,但我发现窗口函数正在运行。

1 个答案:

答案 0 :(得分:0)

如果您有桌子,那么:

select order, order_forecast, count(*)
from results r
group by order, order_forecast;

这会产生四行而不是两行。然后,您可以在应用程序中执行其他计算。

要获取特定格式的数据,请使用:

select order,
       sum(case when order_forecast = 'yes' then 1 else 0 end) as yes,
       sum(case when order_forecast = 'no' then 1 else 0 end) as no
from results
group by order;

或直接获得正确性:

select order,
       sum(case when order_forecast = order then 1 else 0 end) as correct,
       sum(case when order_forecast = order then 0 else 1 end) as incorrect
from results
group by order;

注意order是一个非常糟糕的列名,因为它是一个SQL关键字。