蜂巢爆炸功能
Posted
技术标签:
【中文标题】蜂巢爆炸功能【英文标题】:Hive Explode Function 【发布时间】:2014-08-28 14:10:50 【问题描述】:我的表
name id number
Joe 20 72-11433.80-11427.14-6.66-R
kay 115 3-547.86-547.86-0.00-R
mary 85 12-0.49-0.49-0.00-R
从我的表中选择 *
Joe 20 72-11433.80-11427.14-6.66-R
kay 115 3-547.86-547.86-0.00-R
mary 85 12-0.49-0.49-0.00-R
从 myTable 中选择 split(number,'\-')
["72","11433.80","11427.14","6.66","R"]
["3","547.86","547.86","0.00","R"]
["12","0.49","0.49","0.00","R"]
SELECT explode(split(number,'\-')) FROM myTable
72
11433.80
11427.14
6.66
R
我想知道有没有像explode函数一样工作的函数 但所需的输出将在列而不是行中。 这样: SELECT name, explode(split(number,'\-')) FROM myTable
Joe 72 11433.80 11427.14 6.66 R
kay 3 547.86 547.86 0.00 R
mary 12 0.49 0.49 0.00 R
增加列数而不是行数
【问题讨论】:
【参考方案1】:我认为不存在这样的功能。但是你当然可以直接访问数组元素,一次一个,像这样:
select split(number,'\-')[0], split(number,'\-')[1], split(number,'\-')[2], split(number,'\-')[3], split(number,'\-')[4] from myTable
【讨论】:
以上是关于蜂巢爆炸功能的主要内容,如果未能解决你的问题,请参考以下文章