MATLAB背景,我可以简单地做到这一点
age_sum_error = sum(age > prediction - 4 & age < prediction + 4);
这将计算为真的age值的数量prediction (+4/-4),我想在spark数据框中做类似的事情。
假设下面是我的spark数据框
age | gender | prediction |
---|---|---|
35 | M | 30 |
40 | F | 42 |
45 | F | 38 |
26 | F | 29 |
我希望我的结果看起来像这样
false | positive |
---|---|
2 | 2 |
首先计算条件,然后通过总结1s和0s来汇总结果:
df.selectExpr(
'cast(abs(age - prediction) < 4 as int) as condition'
).selectExpr(
'sum(condition) as positive',
'sum(1-condition) as negative'
).show() | |
---|---|
positive | negative |
2 | 2 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。