sparksql字段类型转换
2024-09-07 05:53:55
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 表示整数部分加小数部分的总长度。
最新文章
- 关于QImage提取单色通道方法(vector)
- 1、Spring In Action 4th笔记(1)
- eclipse中的javac命令与java命令
- 【poj1020】 Anniversary Cake
- (转载)数据库表设计-水电费缴费系统(oracle)
- JavaScript null and undefined
- c#面向对象小结
- NOI2013 快餐店
- DEV SIT UAT
- MySQL字段自增自减的SQL语句
- 基于NIOS-II的示波器:PART2 界面动态显示功能
- 【1】maven来管理我的SSM项目
- j2e中操作EXCEL
- @RequestBody和@RequestParam区别
- TFS 安装 扩展包
- Python中单引号,双引号,3个单引号及3个双引号的区别
- day86
- java后端面试
- 【开源小软件 】Bing每日壁纸 V1.2.1
- 使用HttpClient请求,问题记录