国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

            手機站
            千鋒教育

            千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

            千鋒教育

            掃一掃進入千鋒手機站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學(xué)習(xí)站小程序
            隨時隨地免費學(xué)習(xí)課程

            當前位置:首頁  >  應(yīng)聘面試  >  大數(shù)據(jù)面試題  > 大數(shù)據(jù)面試題:分區(qū)和分桶

            大數(shù)據(jù)面試題:分區(qū)和分桶

            來源:千鋒教育
            發(fā)布人:syq
            時間: 2022-06-21 16:57:00 1655801820

              一、分區(qū)

              指的就是將數(shù)據(jù)按照表中的某一個字段進行統(tǒng)一歸類,并存儲在表中的不同的位置,也就是說,一個分區(qū)就是一類,這一類的數(shù)據(jù)對應(yīng)到hdfs存儲上就是對應(yīng)一個目錄。

              1.靜態(tài)分區(qū)

              數(shù)據(jù)已經(jīng)按某些字段分完區(qū)放在一塊,建表時直接指定分區(qū)即可。

              create table entercountrypeople(id int,name string,cardNum string)

              partitioned by (enter_date string,country string);

              注意,這里的分區(qū)字段不能包含在表定義字段中,因為在向表中l(wèi)oad數(shù)據(jù)的時候,需要手動指定該字段的值.

              2.數(shù)據(jù)加載(指定分區(qū)):

              load data inpath '/hadoop/guozy/data/enter_chinapeople' into table entercountrypeople partition (enter_date='2019-01-02',country='china');

              此處自動創(chuàng)建分區(qū)目錄;

            111

              創(chuàng)建完后目錄結(jié)構(gòu):

             

              其他創(chuàng)建分區(qū)目錄的方法:

              1)alter table entercountrypeople add if not exists partition (enter_date='2019-01-03',country='US');

              2)在相應(yīng)的表目錄下創(chuàng)建分區(qū)目錄后,執(zhí)行 msck repair table table_name;

              2.動態(tài)分區(qū)

              建表相同,主要是加載數(shù)據(jù)方式不同,動態(tài)分區(qū)是將大雜燴數(shù)據(jù)自動加載到不同分區(qū)目錄。

              1)開啟非嚴格模式

              2)要從另一張hive表查詢

              set hive.exec.dynamic.partition.mode=nonstrict;

              insert into table entercountrypeople(user string,age int) partition(enterdate,country) select user,age,enterdate,country from entercountrypeople_bak;

              二、分桶表

              如果兩個表根據(jù)相同的字段進行分桶,則在對這兩個表進行關(guān)聯(lián)的時候可以使用map-side關(guān)聯(lián)高效實現(xiàn)

              create table user_bucket(id int comment 'ID',name string comment '姓名',age int comment '年齡') comment '測試分桶' clustered by (id) sorted by (id) into 4 buckets row format delimited fields terminated by '\t';

              指定根據(jù)id字段進行分桶,并且分為4個桶,并且每個桶內(nèi)按照id字段升序排序,如果不加sorted by,則桶內(nèi)不經(jīng)過排序的,上述語句中為id,根據(jù)id進行hash之后在對分桶數(shù)量4進行取余來決定該數(shù)據(jù)存放在哪個桶中,因此每個桶都是整體數(shù)據(jù)的隨機抽樣。

              數(shù)據(jù)載入:

              我們需要借助一個中間表,先將數(shù)據(jù)load到中間表中,然后通過insert的方式來向分桶表中載入數(shù)據(jù)。

              create table tmp_table (id int comment 'ID',name string comment '名字',age int comment '年齡') comment '測試分桶中間表' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;

              load data inpath '/hadoop/guoxb/data/user.txt' into table tmp_table;

              insert into userbucket select * from tmptable;

              上述的語句中,最終會在hdfs上生成四個文件,而不是四個目錄,如果當在次向該分桶表中insert數(shù)據(jù)后,會又增加4個文件,而不是在原來的文件上進行追加。

              三、區(qū)別

              1.hdfs目錄結(jié)構(gòu)不同,分區(qū)是生成目錄,分桶是生成文件

              2.分區(qū)表在加載數(shù)據(jù)的時候可以指定加載某一部分數(shù)據(jù),有利于查詢

              3.分桶在map-side join(另一種 reduce-side join)查詢時,可以直接從bucket(兩表分桶成倍數(shù)即可)中提取數(shù)據(jù)進行關(guān)聯(lián)操作,查詢高效。

              更多關(guān)于“大數(shù)據(jù)培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴謹,每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

            tags:
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
            免費領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學(xué) 138****2860 剛剛成功領(lǐng)取
            王同學(xué) 131****2015 剛剛成功領(lǐng)取
            張同學(xué) 133****4652 剛剛成功領(lǐng)取
            李同學(xué) 135****8607 剛剛成功領(lǐng)取
            楊同學(xué) 132****5667 剛剛成功領(lǐng)取
            岳同學(xué) 134****6652 剛剛成功領(lǐng)取
            梁同學(xué) 157****2950 剛剛成功領(lǐng)取
            劉同學(xué) 189****1015 剛剛成功領(lǐng)取
            張同學(xué) 155****4678 剛剛成功領(lǐng)取
            鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
            董同學(xué) 138****2867 剛剛成功領(lǐng)取
            周同學(xué) 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT
            快速通道