python数据导入hive_Hive -调用Python 文件处理数据

我们会对存储在hive表格中的数据基于每一行进行数据清理,统计,计算的工作,这个时候我们可以在hive中调用Python脚本对数据进行处理。

程序代码主要分成两个部分,一个hive脚本,一个是Python脚本,两者相互依赖。hive脚本有两个目的,首先是选择相应的数据(使用sql),然后将数据导入到python脚本中进行处理(使用transform)。python脚本目的是读取数据并进行相应的数据处理。读取数据的时候如果我们需要对数据进行多次处理我们一般使用sys.stdin.readlines(). 如果我们仅仅使用一次就好,我们直接按行使用sys.stdin。

Hive代码如下:

#首先我们创建一个表格用来存放被python脚本处理过的数据

function mk_dt(){

cat <

create table if not exists temp_data(uid string,value string)

row format delimited fields terminated by '\t'

location '/usr/documents/temp_data';

EOF

}

hive -e "`mk_dt`"

echo "mk_dt"

#随后我们将数据导入到python脚本处理

function process_data(){

cat <

add file ./temp_process_data.py;

insert overwrite table temp_data

select transform(tmp.*) using 'python temp_process_data.py processata'

as uid,value

from(

select * from basic_data

)tmp

EOF

}

hive -e "`process_data`"

echo "process_data"

Python代码如下:

#

import sys

def process_temp_data():

for line in sys.stdin:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值