以下演示如何使用Python编写Hive UDF。
这个DEMO是将第列的值转换成字符串,然后再加上前缀和后缀@
;
import sys
for line in sys.stdin:
data = []
for col in line.strip().split('\t'):
data.add('@%s@' % str(e))
# '\t'.join([('@%s@' % str(e)) for e in line.strip().split('\t')])
print '\t'.join(data)
注意:输入是\t
分隔的字符串,输出也是\t
分隔的字符串。
add file './test_a_udf.py';
select
transform(col1, col1, col1) using 'python ./test_a_udf.py' as (x1, x2, x3)
from (
select 'Sunny' as col1
union all
select 'Colin' as col1
union all
select 'David' as col1
) as a;
输出结果
@Sunny@ @Sunny@ @Sunny@
@Colin@ @Colin@ @Colin@
@David@ @David@ @David@
注意:
这里的col1
, x1
, x2
, x3
是一个个的列名。