HADOOP STREAMING实例HIVE引用PYTHON

背景:


现有一个staff(员工信息表),表中包含字段name(员工姓名)time(工作时间)per_money(每小时金钱);

数据如下:

 

要求:创建一个表,作为salary(工资表),表中包含字段name(员工姓名)total_money(工作时间*每小时金钱),将对staff表计算 结果插入到salary表中;

 

 

解决方案:1、HQL计算

                2、hadoop streaming

            3、hadoop mapreduce

 

 

1、创建表

create table salary(name string , total_money int)
row format delimited 
fields terminated by ‘\t’
lines terminated by ‘\n’
 




2、编辑python.py

import sys
for line in sys.stdin:
one = line.strip().split('\t')
print "%s\t%d" %(one[0],int(one[1])*int(one[2]))


3、运行hive命令

Add file /opt/study/python.py



注:/opt/study/python.py是本地路径

 

from  staff
insert overwrite table salary
select transform(name,time,per_money)  using 'python /opt/study/python.py'
as  name , total_money


 

 

4、查询salary表




5、核对前面数据,结果正确


6、以上全部为个人整理实践所得,供大家参考学习

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值