hive如何使用python脚本

举个栗子

我们要用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;
相关推荐
biter down3 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
肖永威5 小时前
Python多业务并行计算框架插件化演进:从硬编码到动态注册
python·插件化·并行计算·动态注册
yz_aiks5 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
不知名的老吴5 小时前
线程的生命周期之线程“插队“
java·开发语言·python
xsc6996756 小时前
从零搭建大模型与智能体平台 - 完整技术详解
python
无风听海7 小时前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
CTA终结者8 小时前
期货量化主力换月程序怎么移仓:天勤 underlying_symbol 与任务切换
python·区块链
马士兵教育8 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
KaMeidebaby8 小时前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6189 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法