举个栗子
我们要用python脚本实现对hive的用户表解析出他的性别
1、首先在linux端准备数据源

2、在hive准备一个空表
create table stu_info(
name string,
idcard string
)
row format delimited fields terminated by '\t';
3、将本地idcard.txt里的内容加载到hive表中
load data local inpath '/root/ys/idcard.txt' into table stu_info;
4、在本地编写python脚本: vim stu_info.py
#-*-coding:utf-8-*-
import sys
##读取表格的内容
for line in sys.stdin:
#line就是表格每一行的数据
line=line.strip().split('\t')
name=line[0]
card=line[1]
if len(card)==18:
if int(card[-2])%2==1:
print('\t'.join([name,card,'男']))
else:
print('\t'.join([name,card,'女']))
elif len(card)==15:
if int(card[-1])%2==1:
print('\t'.join([name,card,'男']))
else:
print('\t'.join([name,card,'女']))
else:
print('\t'.join([name,card,'不合法的身份证']))
5、使用数据文件对python脚本进行校验
cat idcard.txt|python stu_info.py

6、上传python文件到hive
add file /root/ys/stu_info.py;
7、在hive数据引用这个自定义函数,进行表格的查询
select transform(name,idcard) using 'python stu_info.py' as (name,idcard,sex) from stu_info;
