1、spark sql 计算时,一定要注意精度的问题,一般像金额之类的值,要先转换为double或者 decimal来进行计算了。

一、sql的方式:
select
shop_id,order_id,sum(cast(deal_price as decimal(15,2))) deal_price,sum(cast(total_price as decimal(15,2))) total_price
from aaa
where stat_day='20190617'
and cid1 not in (293,-1)
and cid2 not in (422,421,427,525,446)
and substr(pay_time,1,10)>='2019-06-01'
and substr(pay_time,1,10)<='2019-06-17'
group by shop_id,order_id
二、df的方式:
  c_tran_df.withColumn("l_picked_amt", c_tran_df("l_special_amt").cast(DecimalType(15,4)))
decimal(15,2)  
2 表示小数部分的位数,如果插入的值,未指定小数部分或者小数部分不足两位,则会自动补到2为小数。
15 表示整数部分加小数部分的总长度。         

最新文章

  1. 关于QImage提取单色通道方法(vector)
  2. 1、Spring In Action 4th笔记(1)
  3. eclipse中的javac命令与java命令
  4. 【poj1020】 Anniversary Cake
  5. (转载)数据库表设计-水电费缴费系统(oracle)
  6. JavaScript null and undefined
  7. c#面向对象小结
  8. NOI2013 快餐店
  9. DEV SIT UAT
  10. MySQL字段自增自减的SQL语句
  11. 基于NIOS-II的示波器:PART2 界面动态显示功能
  12. 【1】maven来管理我的SSM项目
  13. j2e中操作EXCEL
  14. @RequestBody和@RequestParam区别
  15. TFS 安装 扩展包
  16. Python中单引号,双引号,3个单引号及3个双引号的区别
  17. day86
  18. java后端面试
  19. 【开源小软件 】Bing每日壁纸 V1.2.1
  20. 使用HttpClient请求,问题记录

热门文章

  1. 【队列+模拟】机器翻译 luogu-1540
  2. GIS数据资源下载
  3. [考试总结]noip模拟12
  4. odoo里面批量上传图片
  5. 添加底部导航栏tabbar
  6. 【系统学习ES6】第一节:新的声明方式
  7. 防止因提供的sql脚本有问题导致版本bvt失败技巧
  8. Adobe ColdFusion 反序列化漏洞(CVE-2017-3066)
  9. 3个月零基础入门Python+数据分析,详细时间表+计划表分享
  10. RedisTemplate连接不释放、Redis断线不重连问题、Redis连接数高飙升