中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive中的lateral view結合udtf函數的使用解決生產問題

發布時間:2020-07-01 22:59:27 來源:網絡 閱讀:715 作者:Stitch_x 欄目:大數據
===============================================================================
create table psn
(
    id int,
    name string,
    likes array<string>,
    address map<string,string>
)
partitioned by (age int)
row format delimited
fields terminated by '\t'
collection items terminated by '-'
map keys terminated by ':'
lines terminated by '\n'; 
====================================================================================
hive> load data local inpath '/root/a.txt' overwrite into table psn partition(age=10);
Loading data to table default.psn partition (age=10)
OK
Time taken: 3.817 seconds
=================================================================================
hive> select * from psn;
OK
1   zhang3  ["sing","tennis","running"] {"beijing":"daxing"}    10
2   li4 ["sing","pingpong","swim"]  {"shanghai":"baoshan"}  10
3   wang5   ["read","joke","football"]  {"guangzou":"baiyun"}   10
==============================================================================

需求:
    一次性統計每種愛好出現了多少次,每個城市出現了多少次,每個區出現多少次。

分析:
    這個需求有點像hive實現wordcount案例,或者說它就是兩個wc案例的聚合,只不過現在這個不用split。
    在wc案例中,我們使用explode完美地解決了一列記錄wc操作。
    但是在hive中的udtf函數(split/explode)中,select子句只能單獨出現一個udtf函數,且udtf函數不能與其它字段和函數一并使用。
    #####只能select explode(..) from emp;
    #####不能select explode(..), explode(..) from emp;
    #####不能select id,explode(..) from emp;
    這就會造成對于一些復雜邏輯就會出現無法處理的問題,就比如以上這個兩列記錄的wc操作。
    這時候就需要用到lateral view了,它可以將udtf函數產生的多行結果組織成一張虛擬表。

===================================================================================
hive> select count(distinct c1),count(distinct c2),count(distinct c3)from psn 
    >lateral view explode(likes)t1 as c1 
    >lateral view explode(address)t2 as c2,c3;

#####t1和t2為經過udtf函數產生的虛擬表的表名,c1/c2/c3為字段別名
#####數組經過explode會產生一列數據,map集合產生兩列。

Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2019-04-24 22:59:16,471 Stage-1 map = 0%,  reduce = 0%
2019-04-24 22:59:25,681 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.76 sec
2019-04-24 22:59:36,268 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 4.15 sec
MapReduce Total cumulative CPU time: 4 seconds 150 msec
Ended Job = job_1556088929464_0004
MapReduce Jobs Launched: 
Stage-Stage-1: Map: 1  Reduce: 1   Cumulative CPU: 4.15 sec   HDFS Read: 14429 HDFS Write: 105 SUCCESS
Total MapReduce CPU Time Spent: 4 seconds 150 msec
OK
8   3   3
Time taken: 35.986 seconds, Fetched: 1 row(s)
=============================================================================
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉木萨尔县| 当雄县| 金华市| 泰宁县| 栾城县| 赣榆县| 通道| 漳州市| 赤城县| 隆林| 石楼县| 湖北省| 墨竹工卡县| 乌拉特中旗| 察雅县| 论坛| 石渠县| 兴国县| 合川市| 榕江县| 井冈山市| 个旧市| 拉萨市| 隆德县| 班戈县| 旬邑县| 方城县| 盘山县| 原平市| 禄丰县| 兴化市| 民和| 墨竹工卡县| 宁安市| 乃东县| 孙吴县| 拉孜县| 屏南县| 田林县| 和田县| 霸州市|