基于hive的transform实现自定义分隔符数据导出


1、建表语句

create table test(name string, age int, sex string)
row format delimited 
fields terminated by '|'
stored as textfile;

2、数据准备

lairin|20|男
peter|19|男
ena|1|

3、加载数据

load data local inpath '/home/test/test.txt' overwrite into table test;

4、编写transform脚本

'''

@author: lairin
'''

import sys

separator = sys.argv[1]

for line in sys.stdin:
     value = line.split()
     print separator.join(value)

5、使用 hive -e 'sql' > result.data 进行数据导出

hive -e "
add file /home/test/demo.py;
select transform(u.name, u.age, u.sex) using 'python demo.py ^' as (all) from (select * from test) as u;
" > result.data

注: using 字句后面执行的python脚本的第一个参数 ^ 为分隔符

导出的结果:

lairin^20^男
peter^19^男
ena^1^女

 

摆渡人影院


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM