hive分解函数

gywdnpxw  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(364)

空白表

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

从mytable中选择*

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(数字“-”)

["72","11433.80","11427.14","6.66","R"]
["3","547.86","547.86","0.00","R"]
["12","0.49","0.49","0.00","R"]

从mytable中选择explode(split(number,“-”))

72
11433.80
11427.14
6.66
R

我想知道是否有一个函数可以像explode函数那样工作,但所需的输出将是列而不是行。例如:选择name,从mytable中分解(split(number,“-”))

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

增加列数而不是行数

ktecyv1j

ktecyv1j1#

我认为这样的函数不存在。但您当然可以直接访问数组元素,一次一个,如下所示:

select split(number,'\-')[0], split(number,'\-')[1], split(number,'\-')[2], split(number,'\-')[3], split(number,'\-')[4] from myTable

相关问题