2020-09-10 教师节快乐 小微企业表中含有 个体工商户+小微共1亿多数据,但信息不全。企业基本信息表中全是企业的信息,7000万,但我想要的是小微。需要join

2020-09-10 教师节快乐
今天上午的问题是 hive中表的数据处理

A 小微企业+个体工商户数据 7个字段,1亿条数据;
B e_baseinfo 数据 7080万数据;
目标:A、B join 拿到 小微企业数据,再进行分析

终于实战中遇到 hive join的优化,本身机器(怎么查虚拟机的运行内存和核数 百度)
物理CPU4 每个有2核,运行内存,

处理方法,每个表中都把统一信用代码拿出来,将重复的取出来。

将重复的数据筛选出来:

Select uniscid,count(0) as num from table group by uniscid having num>1

kettle操作此语句失败了,报错未知。

Hive -e “Select uniscid, count(1) as num from distinctuniscid group by uniscid having num>1” >> /root/alldistincuniscid.txt

或者在 linux kettle下执行转换文件 也能成功
最后得到不含个体工商户的小微企业数量为3200万,大小700M.
下一步骤是拿 3200万 uniscid 去匹配e_baseinfo

Hive -e “select /*+MAPJOIN(d) */ d.uniscid From distinctuniscid d left join enterprise.e_baseinfo e on d.uniscid=e.uniscid” >> /root/alldistinctxwqy/

最后还是无法逃脱面对小表join 大表的问题
我的优化思路是将700M的小表mapjoin 下,然后执行上述语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值