Hadoop入门之Hive自定义函数和Transform

1.Java继承UDF类重写evaluate方法后打成Jar包上传,添加到Hive函数中

2.使用 Transform在SQL中调用自己写的脚本

这里主要说下第二种:


1. 需要用到的原始表如下,分隔符号为\t


hive> select * from my_one_table;
OK
1    songqinghu
2    zhangwei
3    lujia
4    liuyuxin


2.为转换后的数据创建一个新表

drop table new_name;
CREATE TABLE new_name (
  name string,
  id string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

3.编写一个python脚本,将字段位置换位一下


one.py 文件

#!/bin/python
import sys

for line in sys.stdin:
  line = line.strip()
  id, name = line.split('\t')
  print ','.join([name,id])


4.将脚本文件上传到hive中(文件需要在hive服务机器上)

add FILE /home/hadoop/one.py;


5.执行transform


INSERT OVERWRITE TABLE new_name
SELECT
  TRANSFORM (id,name)
  USING 'python one.py'
  AS (id,name)
FROM my_one_table;



运行就结果如下:








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值