91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

      關注千鋒學習站小程序
      隨時隨地免費學習課程

      當前位置:首頁  >  應聘面試  >  大數(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ù)對應到hdfs存儲上就是對應一個目錄。

        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)建完后目錄結構:

       

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

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

        2)在相應的表目錄下創(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ù)相同的字段進行分桶,則在對這兩個表進行關聯(lián)的時候可以使用map-side關聯(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目錄結構不同,分區(qū)是生成目錄,分桶是生成文件

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

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

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

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