欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Hive的原理與技巧是怎樣的

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Hive的原理與技巧是怎樣的,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供施秉企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為施秉眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

Hive Order/Sort/Distribute/Cluster By:

Order By:會(huì)在一個(gè)reducer中對(duì)所有數(shù)據(jù)進(jìn)行排序,為了防止數(shù)據(jù)量過(guò)大導(dǎo)致排序緩慢,hive默認(rèn)處于strict mode(也即hive.mapred.mode=strict),而且查詢(xún)語(yǔ)句后面必須跟隨limit條件,除非將hive.mapred.mode設(shè)置為nonstrict(數(shù)據(jù)量很大時(shí)請(qǐng)慎重設(shè)置)。

Sort By:會(huì)在將數(shù)據(jù)發(fā)往reducer之前進(jìn)行排序,如果列是數(shù)值類(lèi)型則進(jìn)行數(shù)值排序,如果是字符串類(lèi)型也將進(jìn)行詞序上的排序。這個(gè)排序的效果是每個(gè)reducer出來(lái)的結(jié)果是有序的,但全局不一定有序(也即最終結(jié)果是分段有序)。

Distribute By:會(huì)將同一個(gè)列值的數(shù)據(jù)發(fā)往同一個(gè)reducer,但不保證一個(gè)列值一個(gè)reducer,也不保證發(fā)往reducer時(shí)將數(shù)據(jù)排序。例如x1,x2,x4,x3,x1這五個(gè)列值發(fā)往兩個(gè)reducer,則reducer1會(huì)得到x1,x2,x1,reducer2會(huì)得到x4,x3,而且每個(gè)reducer中的數(shù)據(jù)也未排序。

Cluster By:這個(gè)排序等同于Distribute By 加 Sort By,例如對(duì)上述數(shù)據(jù)使用Cluster By,則reducer1會(huì)得到x1,x1,x2,reducer2會(huì)得到x3,x4。然而Cluster By只能指定同一字段的分發(fā)和排序,但Distribute By和 Sort By的組合則能指定不同的分發(fā)和排序的列值。

補(bǔ)充:官方文檔中這段話不是很理解,誰(shuí)能解釋下:Note: It may be confusing as to the difference between SORT BY alone of a single column and CLUSTER BY. The difference is that CLUSTER BY partitions by the field and SORT BY if there are multiple reducers partitions randomly in order to distribute data (and load) uniformly across the reducers.

詳細(xì)參考:Hive LanguageManual

備注:如果SELECT DISTINCT xxx FROM table SORT BY yyy,會(huì)報(bào)錯(cuò)Invalid table alias or column reference 'xxx': (possible column names are: _col0),因?yàn)槭褂肈ISTINCT關(guān)鍵字后會(huì)對(duì)DISTINCT用到的關(guān)鍵字進(jìn)行默認(rèn)的升序排序(可以用ORDER BY或者SORT BY來(lái)改變規(guī)則),而且使用DISTINCT時(shí),排序的字段必須跟在SELECT中。

Hive 型轉(zhuǎn)換:

Hive支持類(lèi)型隱式轉(zhuǎn)換,例如會(huì)在必要的時(shí)候?qū)︻?lèi)型進(jìn)行隱式轉(zhuǎn)換,例如event_day為string類(lèi)型,然而碰到where event_day=20140703語(yǔ)句時(shí),int型的20140703會(huì)被轉(zhuǎn)換為string類(lèi)型。

或者使用強(qiáng)制類(lèi)型轉(zhuǎn)換,例如cast(event_day as double)=20140703.0

詳細(xì)移步官方文檔:Allowed Implicit Conversions、或者Hive數(shù)據(jù)類(lèi)型轉(zhuǎn)換

對(duì)于Hive的表結(jié)構(gòu)/分區(qū)的理解:

首先描述一個(gè)現(xiàn)象:

CREATE EXTERNAL TABLE IF NOT EXISTS test (
    name          STRING,
    age           INT
)
PARTITIONED BY (date INT)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
ALTER TABLE test ADD PARTITION(date=20140710) LOCATION '/test/20140710/';
LOAD DATA LOCAL INPATH "/home/work/20140710.txt" INTO TABLE test PARTITION(date=20140710);
#20140710.txt內(nèi)容:
#Baron    999999999(注:超出int范圍)

A:如上,此時(shí)“SELECT * FROM test;”得到的內(nèi)容中age字段值為NULL;在“ALTER TABLE test CHANGE COLUMN age age STRING AFTER name;”之后重新查詢(xún)還是之前的效果;但是在“ALTER TABLE test DROP IF EXISTS PARTITION(date=20140710);”并重新添加PARTITION之后,可以查詢(xún)到age值。

B:反過(guò)來(lái),定義表時(shí)如果age為STRING型,查詢(xún)可得到age值,將age字段類(lèi)型改為int型則查詢(xún)不到,再改為STRING型之后,可以重新查到數(shù)據(jù)(這個(gè)過(guò)程中沒(méi)有設(shè)計(jì)PARTITION更新操作)。

在諸多周轉(zhuǎn)測(cè)試之后,了解到這么一個(gè)現(xiàn)象(或者原理):Hive的PARTITION只受在其之前定義的表結(jié)構(gòu)屬性的影響,在PARTITION被創(chuàng)建之后發(fā)生的表屬性更新,將不影響PARTITION在創(chuàng)建之初所保存的元數(shù)據(jù),該元數(shù)據(jù)保存著先前定義的表的一些屬性。

因此,A的PARTITION中元數(shù)據(jù)保存的字段是INT類(lèi)型,即使表字段更新為STRING,還是不會(huì)更新PARTITION中早已存在的屬性。B中PARTITION元數(shù)據(jù)保存的是STRING類(lèi)型,改為INT后查不到值(無(wú)法轉(zhuǎn)型),再改為STRING類(lèi)型之后還是能查到,分區(qū)中元數(shù)據(jù)不變。(這段話有點(diǎn)站不住腳跟,不知是不是PARTITION元數(shù)據(jù)跟HIVE當(dāng)前表結(jié)構(gòu)共同作用在查詢(xún)上,產(chǎn)生了交集約束;有朋友對(duì)這方面能解釋的嗎?)

上述就是小編為大家分享的Hive的原理與技巧是怎樣的了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱(chēng)欄目:Hive的原理與技巧是怎樣的
本文路徑:http://aaarwkj.com/article20/pdhijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、ChatGPT、商城網(wǎng)站、服務(wù)器托管、軟件開(kāi)發(fā)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
久久国产精品成人av| 日韩欧美国产精品一区二区三区| 无码精品人妻一区二区三区中| 亚洲中文字幕av每天更新| 成人在线一区二区三区观看| 欧美日韩在线国产一区| 99久久免费热在线观看| 久久精品亚洲精品毛片| 国产av剧情精品麻豆| 欧美激情欧美狂野欧美精品| 国产乱人伦真实精品视频| 国产精品—色哟哟视频| 色在线观看综合亚洲欧洲| 一本色道久久88综合日韩| 日本中文字幕三级专区| 日本午夜免费在线视频| av免费在线观看麻豆| 国内精品久久久国产盗摄| 中文字幕乱码亚洲精品一区| 蜜桃少妇人妻一区二区视频| 巨乳中文乱码国产一区二区| 九九re久久这里有精品| 日韩精品成人一区二区三区免费 | 国产精品亚洲一区二区在| 岛国大片日韩在线观看| 色婷婷激情一区二区三区| 久久精品亚洲国产成人av| 国产亚洲欧美精品久久久久久| 国产夫妻性生活视频播放| 美女av在线免费观看| 91在线人妻一区二区三区| 国产亚洲欧美日韩精品| 国产中文字幕乱码中文| 91国产性感美女视频| 欧美另类亚洲综合久青草| 亚洲一区二区三区四区国产| 国产福利精品一区二区av| 成人在线视频国产自拍| 一本在线不卡中文字幕| 美女丝袜诱惑国产在线观看| 99久久久国产精品蜜臀|