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

来源:互联网 发布:华帝油烟机怎么样知乎 编辑:程序博客网 时间:2024/05/18 23:13
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;



运行就结果如下: