scala – 如何在应用agg函数之前将十进制值限制为2位数?
发布时间:2020-12-16 18:44:30 所属栏目:安全 来源:网络整理
导读:我正在遵循堆栈溢出帖子中的一个 this解决方案,我唯一的要求是如何在应用df.agg(sum())函数之前将我想要求和的值限制为小数点后的2位数? 例如:我有如下的值,sum函数对它进行求和, 2.3461.549 但是我希望将值舍入为小数点后的2位数 2.351.55 在总结之前.我
我正在遵循堆栈溢出帖子中的一个
this解决方案,我唯一的要求是如何在应用df.agg(sum())函数之前将我想要求和的值限制为小数点后的2位数?
例如:我有如下的值,sum函数对它进行求和, 2.346 1.549 但是我希望将值舍入为小数点后的2位数 2.35 1.55 在总结之前.我该怎么做?我无法找到任何子函数,如sum().round函数和.注意:我使用的是spark 1.5.1版本. 解决方法
你可以使用
bround:
val df = Seq(2.346,1.549).toDF("A") df.select(bround(df("A"),2)).show +------------+ |bround(A,2)| +------------+ | 2.35| | 1.55| +------------+ df.agg(sum(bround(df("A"),2)).as("appSum")).show +------------------+ | appSum| +------------------+ |3.9000000000000004| +------------------+ ^ df.agg(sum(df("A")).as("exactSum")).show +--------+ |exactSum| +--------+ | 3.895| +--------+ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |