欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Hive分區(qū)分桶以及自定義函數(shù)的介紹

這篇文章主要介紹“Hive分區(qū)分桶以及自定義函數(shù)的介紹”,在日常操作中,相信很多人在Hive分區(qū)分桶以及自定義函數(shù)的介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hive分區(qū)分桶以及自定義函數(shù)的介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)建站是專業(yè)的正鑲白網(wǎng)站建設公司,正鑲白接單;提供成都做網(wǎng)站、網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行正鑲白網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

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

1、

load data local inpath '/root/tes.txt' into table test.usr;

      將本地的數(shù)據(jù)導入到hive中

2、從hdfs集群導入數(shù)據(jù)

load data inpath 'hdfs://node01:9000/user/tes.txt' into table test.te;

LOAD DATA命令,可分為LOAD DATA LOCAL INPATH和LOAD DATA INPATH。兩者的區(qū)別在于LOCAL導入的是本地文件而不加LOCAL的導入的是HDFS文件---相當于直接將文件進行相應的上傳

3、insert into---內(nèi)外部表,不適應于分區(qū)

4、

from table1insert into(overwrite) tables2select id ,name

分區(qū)表

Hive 分區(qū)partition(分成不同的文件目錄進行存儲)

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

必須在表定義時指定對應的partition字段-----分區(qū)字段一定不能與表中字段重復

a、單分區(qū)建表語句:

create table day_table (id int, content string) partitioned by (dt int);上傳數(shù)據(jù):load data local inpath '/root/tes.txt' into table test.usr partition (age=10);

單分區(qū)表,按天分區(qū),在表結(jié)構(gòu)中存在id,content,dt三列。

以dt為文件夾區(qū)分

粗細力度分區(qū)的時候要根據(jù)業(yè)務需求,提前進行相應的設定 年月日時分秒----為了減少每一個分區(qū)中的內(nèi)容,提高計算效率

b、 雙分區(qū)建表語句:

create table hour(id int, content string) partitioned by (dt int, hour int);

雙分區(qū)表,按天和小時分區(qū),在表結(jié)構(gòu)中新增加了dt和hour兩列。

先以dt為文件夾,再以hour子文件夾區(qū)分

增加分區(qū)

alter table hour add partition(dt=10,hour=40);

alert table tablename add partiton(dt=20,hour=40)

也就是說添加分區(qū)的時候不能直接添加,而是需要將原來的分區(qū)也要包含其中,完成相應的排序

刪除分區(qū)

alter table tablename drop partition (sex='boy')

alert table tablename drop partiton(dt=20,hour=40)

注:刪除分區(qū)的時候,會將所有存在的分區(qū)都刪除

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

修改權(quán)限的方式:

1、conf/hive-site.xml

2、在hive內(nèi)部使用set進行相應的設置

3、hive啟動的時候設置 hive --conf hive.exec.dynamic.partiton=true

修改權(quán)限的方法

1、修改權(quán)限

set hive.exec.dynamic.partiton=true //開啟動態(tài)分區(qū)

2、修改默認狀態(tài)

set hive.exec.dynamic.partiton.mode=nostrict //默認strict。至少有一個靜態(tài)分區(qū)

創(chuàng)建分區(qū)表:

create table psn22( id int, name string, likes array<String>, address map<string ,string> ) partitioned by (age int ,sex string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ’,’ COLLECTION ITEMS TERMINATED BY ‘,’ MAP KEYS TERMINATED BY ‘:’ LINES TERMINATED BY ‘\t’

寫入數(shù)據(jù)

from psn21 //已經(jīng)存在的表格并且要有數(shù)據(jù)insert overwrite table pas22 partiton (age,sex)select * distribute by age,sex

分桶表:

測試數(shù)據(jù)

1,tom,11

開啟分桶

set hive.enforce.bucketing=true

創(chuàng)建桶

create table psnbucket1 (id int,name string,age int)clustered by (age) into 4 bucketsrow format delimited fields terminated by ','

加載數(shù)據(jù)

insert into  table psnbucket select id,name,age from psn31

抽樣

select * from bucket_table tablesample(bucket 1 out of 4 by colimes)

自定義函數(shù)

UDF:一對一

1、繼承UDF

2、重寫evaluate

(實現(xiàn)傳入的參數(shù),并且封裝了很多的方法)

public class AddPrefix extends UDF {  /**   * 這里我們實現(xiàn)將任一輸入添加自定義前綴信息   */  public String evaluate(String str) {    return "HIVE UDF Prefix:"+ str;  }}

UDAF:多對一

UDTF:一對多

1、創(chuàng)建udf自定義函數(shù)

2、達成jar包并上傳到linux集群

3、將集群中的jar包上傳到hive中:add jar /opt/software/jars/UDF.jar;

4、創(chuàng)建屬于我自己的函數(shù)

create temporary function bws as "com.hpe.TestUdf.TestUdf";

5、使用函數(shù)執(zhí)行

但是在創(chuàng)建自定義函數(shù)的時候,一般都是創(chuàng)建的臨時函數(shù),推出就木有了,那怎么創(chuàng)建永久函數(shù)呢?

注冊永久hive自定義函數(shù)

add jar的方式只是導入臨時的jar文件,所以不能創(chuàng)建永久的自定義函數(shù),想要添加永久的自定義函數(shù)需要在配置文件中對jar的引入進行修改

在hive-site.xml文件中添加

<property>      <name>hive.aux.jars.path</name>      <value>file:///opt/module/hive/lib/app_logs_hive.jar</value>    </property>

注意:value中的值為你的udf.jar上傳到linux的指定路徑下,若是多個jar包,以,(逗號)進行分割

到此,關(guān)于“Hive分區(qū)分桶以及自定義函數(shù)的介紹”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)頁名稱:Hive分區(qū)分桶以及自定義函數(shù)的介紹
網(wǎng)站網(wǎng)址:http://chinadenli.net/article16/pijogg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃ChatGPT、App設計、定制開發(fā)搜索引擎優(yōu)化、靜態(tài)網(wǎng)站

廣告

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

成都app開發(fā)公司