如何在hive python UDF中输出数组

时间:2016-10-13 02:03:37

标签: python hive udf

我使用python在hive中执行UDF。是否有一些方法从UDF输出数组/映射这样的结构化数据? 我试图在UDF中返回一个python列表,但它无法转换为hive数组。

1 个答案:

答案 0 :(得分:0)

当您尝试在UDF中返回python列表时,我建议您拆分列表并逐步处理每个数据。 这是一个例子。使用' TRANSFORM'明智地在蜂巢中。

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# demo.py
import sys
import datetime
import time

#Turn the timestamp into string 
def timestamp_toString(stamp):
    return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(stamp))

for line in sys.stdin:
    print timestamp_toString(float(line))
在hive控制台中

hive> add file /ebs/hive/test/demo.py;
select TRANSFORM(time) using 'python demo.py' as (time) from (select * from access_fccs where week=41 limit 10) a ;