Spark SQL优化流程(解决集群OOM问题)

根据七张基础业务表,生成大宽表

tt_sales_order		1826 7673  	大 ord
tt_deposit_order	56 0368  	小 dep
tt_vehicle_action	236 5624 	中 vac
tt_pipeline_pool	1000 0000  	大 pol
tt_vehicle_resource	53 9059  	小 vre
tt_dealer_resource	1000 0000  	大 dre
tt_dealer_retail_order	1602 3564  	大 ret

直接join报错OOM
分步骤操作:

OrderSales_ordtwoyears
OrderSales_ord_dep_one
OrderSales_ord_dep_two
OrderSales_ord_vac_dep
OrderSales_pol_vre
OrderSales_dre_ret

第一步:where ord
筛选两年内数据,并mark_for_delete = ‘0’
第二步:ord left outer join dep
经研究发生数据倾斜,主要原因是BRAND_ID字段只有100和200两个状态
(先处理 BRAND_ID = 100)
第三步:ord left outer join dep
经研究发生数据倾斜,主要原因是BRAND_ID字段只有100和200两个状态
(再处理 BRAND_ID = 200)
第四步:ord_dep left outer join vac
第五步:ord_dep_vac left outer join pol_vre
第六步:ord_dep_vac_pol_vre left outer join dre_ret


问题一:某个字段有/n导致与hive换行符冲突

regexp_replace(dep.cust_name, '\n|\t|\r', '')  

问题二:join不上的数据显示为NULL

采用parquet存储格式,把NULL自动转换成空字符

问题三:业务逻辑不熟

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值