1
如何使用HQL獲取配置單元列計數名稱?我知道我們可以使用describe.tablename來獲取列的名稱。我們如何獲得計數?配置單元 - 獲取表格的列名稱數
如何使用HQL獲取配置單元列計數名稱?我知道我們可以使用describe.tablename來獲取列的名稱。我們如何獲得計數?配置單元 - 獲取表格的列名稱數
create table mytable(i int,str string,dt date, ai array<int>,strct struct<k:int,j:int>);
select count(*)
from (select transform ('')
using 'hive -e "desc mytable"'
as col_name,data_type,comment
) t
;
一些額外的玩耍:
create table mytable (id int,first_name string,last_name string);
insert into mytable values (1,'Dudu',null);
select size(array(*)) from mytable limit 1;
這不是防彈的,因爲並非所有列類型的組合都可以組合成一個數組。
它還要求表格至少包含1行。
這裏是一個更復雜也更強大的解決方案(類型也一樣),而且還要求該表將包含至少1排
select size(str_to_map(val)) from (select transform (struct(*)) using 'sed -r "s/.(.*)./\1/' as val from mytable) t;
我稍後將對其進行編輯以支持分區。我也可以用STRUCT解決方案克服1行限制。 –
的[蜂巢可能的複製,我該怎麼辦檢索所有數據庫的表列](http://stackoverflow.com/questions/29239565/hive-how-do-i-retrieve-all-the-databases-tables-columns) –
@GordonLinoff - definitly不同的問題 –