Hive无序对功能

时间:2014-12-03 21:50:03

标签: hive

是否有可能在Hive中生成无序对(类似于猪无序对功能?)此功能是否存在于任何地方?

理想情况下,我希望能够传递一个表格,如:

select * from mytable

array_1 
["A","B","C"] 

然后回来

select unorderedPairs(array_1) from mytable


["A",B"]
["B","C"]
["C","A"] 

1 个答案:

答案 0 :(得分:1)

没有内置功能。在Hive中,这将被称为用户定义表生成函数。以下是内置的UDTF:

  • 内联(ARRAY) 将一组结构分解为表格。 (截至Hive 0.10。) 数组类型
  • 爆炸(阵列a) 对于a中的每个元素,生成包含该元素的行。 元组
  • json_tuple(jsonStr,k1,k2,...) 获取一组名称(键)和一个JSON字符串,并返回一个值元组。这是get_json_object UDF的更高效版本,因为只需一次调用即可获得多个密钥。 元组
  • parse_url_tuple(url,p1,p2,...) 这类似于parse_url()UDF,但可以从URL中一次提取多个部分。有效的部件名称是:HOST,PATH,QUERY,REF,PROTOCOL,AUTHORITY,FILE,USERINFO,QUERY:。 N行
  • posexplode(ARRAY) 对于数组来说就像爆炸一样,但是通过返回(pos,value)的元组来包括原始数组中项的位置。 (截至Hive 0.13.0。)

  • 堆栈(INT n,v_1,v_2,...,v_k) 将v_1,...,v_k分成n行。每行将有k / n列。 n必须是常数。