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;
相关推荐
kobe_OKOK_4 小时前
__getattr__和__getattribute__如何用
python
全栈弄潮儿5 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技5 小时前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y5 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川5 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸5 小时前
排序算法介绍
python·算法·排序算法
笔墨登场说说5 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
MoRanzhi12036 小时前
第 3 篇 · 数据清洗与特征工程:从问题判定到特征构建
python·pandas·数据清洗·特征工程·缺失值处理·异常值检测·特征编码
陈年老古董6 小时前
Hive 函数学习笔记(下):窗口函数与经典案例
hive·笔记·学习
爱吃火鸡面呀6 小时前
DataX 实战:使用 HDFS Reader 读取 Hive ORC 表并输出到 Stream
hive·hadoop·hdfs