国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一百一十一、Hive——從HDFS到Hive的數(shù)據(jù)導(dǎo)入(靜態(tài)分區(qū)、動(dòng)態(tài)分區(qū))

這篇具有很好參考價(jià)值的文章主要介紹了一百一十一、Hive——從HDFS到Hive的數(shù)據(jù)導(dǎo)入(靜態(tài)分區(qū)、動(dòng)態(tài)分區(qū))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、分區(qū)的定義

分區(qū)表實(shí)際上就是對(duì)應(yīng)一個(gè) HDFS 文件系統(tǒng)上的獨(dú)立的文件夾, Hive 中的分區(qū)就是分目錄 ,把一個(gè)大的數(shù)據(jù)集根據(jù)業(yè)務(wù)需要分割成小的數(shù)據(jù)集。
在查詢時(shí)通過 where 子句中的表達(dá)式選擇查詢所需要的指定的分區(qū),這樣的查詢效率
會(huì)提高很多,所以我們需要把常常用在where 語句中的字段指定為表的分區(qū)字段。
而分區(qū)又分為靜態(tài)分區(qū)、動(dòng)態(tài)分區(qū)兩種。

二、靜態(tài)分區(qū)、動(dòng)態(tài)分區(qū)對(duì)比

靜態(tài)分區(qū)與動(dòng)態(tài)分區(qū)的主要區(qū)別在于靜態(tài)分區(qū)是手動(dòng)指定,是編譯時(shí)進(jìn)行分區(qū)。支持load和insert兩種插入方式。適合于分區(qū)數(shù)少、分區(qū)名可以明確的數(shù)據(jù)

而動(dòng)態(tài)分區(qū)是通過數(shù)據(jù)來進(jìn)行判斷,是在SQL執(zhí)行時(shí)進(jìn)行分區(qū)。只支持inset這一種插入方式。需要先開啟動(dòng)態(tài)設(shè)置。實(shí)際項(xiàng)目里按日期進(jìn)行分區(qū)的數(shù)據(jù)一般都是動(dòng)態(tài)分區(qū)

三、HDFS數(shù)據(jù)準(zhǔn)備

(一)HDFS文件后綴名以日期區(qū)分

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop

(二)查看數(shù)據(jù)樣式

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop

四、Hive建普通外部表? 不分區(qū)

(一)建表語句

create external table if not exists ods_evaluation(
    device_no  string         COMMENT '設(shè)備編號(hào)',
    cycle  int                COMMENT '評(píng)價(jià)數(shù)據(jù)周期',
    lane_num  int,
    create_time  timestamp    COMMENT '創(chuàng)建時(shí)間',
    lane_no int               COMMENT '車道編號(hào)',
    volume int                COMMENT '車道內(nèi)過停止線流量(輛)',
    queue_len_max float       COMMENT '車道內(nèi)最大排隊(duì)長(zhǎng)度(m)',
    sample_num int            COMMENT '評(píng)價(jià)數(shù)據(jù)計(jì)算樣本量',
    stop_avg int              COMMENT '車道內(nèi)平均停車次數(shù)(次)',
    delay_avg float           COMMENT '車道內(nèi)平均延誤時(shí)間(s)',
    stop_rate float           COMMENT '車道內(nèi)一次通過率',
    travel_dist float         COMMENT '車道內(nèi)檢測(cè)行程距離(m)',
    travel_time_avg float     COMMENT '車道內(nèi)平均行程時(shí)間'
)
comment '評(píng)價(jià)數(shù)據(jù)表'
row format delimited fields terminated by ','
stored as  textfile  location '/rtp/evaluation'
tblproperties("skip.header.line.count"="1")  ;

(二)結(jié)果展示? 共9076條數(shù)據(jù)

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop

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

(一)建表語句

create external table if not exists ods_evaluation_static(
    device_no  string         COMMENT '設(shè)備編號(hào)',
    cycle  int                COMMENT '評(píng)價(jià)數(shù)據(jù)周期',
    lane_num  int,
    create_time  timestamp    COMMENT '創(chuàng)建時(shí)間',
    lane_no int               COMMENT '車道編號(hào)',
    volume int                COMMENT '車道內(nèi)過停止線流量(輛)',
    queue_len_max float       COMMENT '車道內(nèi)最大排隊(duì)長(zhǎng)度(m)',
    sample_num int            COMMENT '評(píng)價(jià)數(shù)據(jù)計(jì)算樣本量',
    stop_avg int              COMMENT '車道內(nèi)平均停車次數(shù)(次)',
    delay_avg float           COMMENT '車道內(nèi)平均延誤時(shí)間(s)',
    stop_rate float           COMMENT '車道內(nèi)一次通過率',
    travel_dist float         COMMENT '車道內(nèi)檢測(cè)行程距離(m)',
    travel_time_avg float     COMMENT '車道內(nèi)平均行程時(shí)間'
)
comment '評(píng)價(jià)歷史數(shù)據(jù)表 靜態(tài)分區(qū)'
partitioned by (day string)   --分區(qū)字段不能是表中已經(jīng)存在的數(shù)據(jù),可以將分區(qū)字段看作表的偽列。
row format delimited fields terminated by ','
tblproperties("skip.header.line.count"="1")  ;

注意點(diǎn):

1、指定的分區(qū)字段不能是表中已經(jīng)存在的數(shù)據(jù)? 我這邊分區(qū)字段為day? 而表中沒有這個(gè)字段

2、建表沒有指定文件路徑

(二)加載數(shù)據(jù)(有坑)

注意:從HDFS中加載數(shù)據(jù)到Hive,如果直接load HDFS中的數(shù)據(jù)到Hive中,那么原HDFS數(shù)據(jù)文件就會(huì)消失在原路徑,而是去了一個(gè)hive的新地方。直接load,這種行為它類似于剪切,而不是我們所希望的復(fù)制文件。 這是一個(gè)坑?。?!

所以如果我們希望既可以load數(shù)據(jù)到hive,還能夠保存HDFS的原文件,那么必須采用迂回策略,從HDFS先到本地,再load到Hive。比如加載HDFS中2023-05-09的數(shù)據(jù)

先從HDFS到l本地? /opt/hdfs_rtp/

[root@hurys22 conf]# hdfs dfs -get /rtp/evaluation/evaluation2023-05-09.csv /opt/hdfs_rtp/

從本地加載到Hive

load data local inpath '/opt/hdfs_rtp/evaluation2023-05-09.csv'
into  table  ods_evaluation_static
partition(day='2023-05-09');

(三)查看分區(qū)

show partitions ods_evaluation_static;

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop

(四)查看數(shù)據(jù)

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop

?六、動(dòng)態(tài)分區(qū)

(一)建表語句

create external table if not exists ods_evaluation_trends(
    device_no  string         COMMENT '設(shè)備編號(hào)',
    cycle  int                COMMENT '評(píng)價(jià)數(shù)據(jù)周期',
    lane_num  int,
    create_time  timestamp    COMMENT '創(chuàng)建時(shí)間',
    lane_no int               COMMENT '車道編號(hào)',
    volume int                COMMENT '車道內(nèi)過停止線流量(輛)',
    queue_len_max float       COMMENT '車道內(nèi)最大排隊(duì)長(zhǎng)度(m)',
    sample_num int            COMMENT '評(píng)價(jià)數(shù)據(jù)計(jì)算樣本量',
    stop_avg int              COMMENT '車道內(nèi)平均停車次數(shù)(次)',
    delay_avg float           COMMENT '車道內(nèi)平均延誤時(shí)間(s)',
    stop_rate float           COMMENT '車道內(nèi)一次通過率',
    travel_dist float         COMMENT '車道內(nèi)檢測(cè)行程距離(m)',
    travel_time_avg float     COMMENT '車道內(nèi)平均行程時(shí)間'
)
comment '評(píng)價(jià)歷史數(shù)據(jù)表 動(dòng)態(tài)分區(qū)'
partitioned by (day string)
row format delimited fields terminated by ',';

注意:由于動(dòng)態(tài)分區(qū)不是load文件,所以建表時(shí)不需要截掉第一行數(shù)據(jù) tblproperties("skip.header.line.count"="1")

(二)開啟動(dòng)態(tài)分區(qū)

--開啟動(dòng)態(tài)分區(qū)功能(默認(rèn) true,開啟)
set hive.exec.dynamic.partition=true;
--設(shè)置為非嚴(yán)格模式   nonstrict 模式表示允許所有的分區(qū)字段都可以使用動(dòng)態(tài)分區(qū)
set hive.exec.dynamic.partition.mode=nonstrict;
--在每個(gè)執(zhí)行 MR 的節(jié)點(diǎn)上,最大可以創(chuàng)建多少個(gè)動(dòng)態(tài)分區(qū)
set hive.exec.max.dynamic.partitions.pernode=1000;
--在所有執(zhí)行 MR 的節(jié)點(diǎn)上,最大一共可以創(chuàng)建多少個(gè)動(dòng)態(tài)分區(qū)。默認(rèn) 1000
set hive.exec.max.dynamic.partitions=1500;

(三)動(dòng)態(tài)加載數(shù)據(jù)(insert overwrite)

insert  overwrite table ods_evaluation_trends partition(day)
select device_no, cycle, lane_num, create_time, lane_no, volume, queue_len_max, sample_num, stop_avg, delay_avg, stop_rate,
       travel_dist, travel_time_avg,date(create_time) day
from ods_evaluation;

注意insert overwrite的用法

insert into 與 insert overwrite 都可以向hive表中插入數(shù)據(jù),但是insert into是直接追加到目前表中數(shù)據(jù)的尾部,而insert overwrite則會(huì)重寫數(shù)據(jù),即先刪除數(shù)據(jù),再寫入數(shù)據(jù)。如果存在分區(qū)的情況,insert overwrite只重寫當(dāng)前分區(qū)

(四)查看動(dòng)態(tài)分區(qū)

show  partitions ods_evaluation_trends;

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop

?(五)查看數(shù)據(jù)

hdfs導(dǎo)入hive,Hive,hive,hdfs,hadoop文章來源地址http://www.zghlxwxcb.cn/news/detail-527202.html

到了這里,關(guān)于一百一十一、Hive——從HDFS到Hive的數(shù)據(jù)導(dǎo)入(靜態(tài)分區(qū)、動(dòng)態(tài)分區(qū))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第一百一十八回 如何獲取藍(lán)牙連接狀態(tài)

    我們?cè)谏弦徽禄刂薪榻B了如何連接藍(lán)牙設(shè)備相關(guān)的內(nèi)容,本章回中將介紹如何獲取藍(lán)牙連接狀態(tài).閑話休提,讓我們一起Talk Flutter吧。 我們?cè)谏弦徽禄刂薪榻B如何連接藍(lán)牙設(shè)備,但是如何知道藍(lán)牙設(shè)備是否連接成功呢?這就需要我們?nèi)カ@取藍(lán)牙設(shè)備的連接狀態(tài),通過藍(lán)牙設(shè)備

    2024年02月12日
    瀏覽(23)
  • Android之關(guān)機(jī)/重啟/recovery模式(一百一十五)

    1.方式一:App調(diào)用系統(tǒng)api 2.方式二:setprop 注意:在init的reboot.c中, ? ? ? ? ? adb reboot -p命令其實(shí)就是調(diào)用的setprop命令開關(guān)機(jī)的。? 3.方式三:

    2024年02月14日
    瀏覽(28)
  • 第一百一十二回 flutter_screenutil包

    我們?cè)谏弦徽禄刂薪榻B了屏幕適配相關(guān)的內(nèi)容,本章回中將介紹 flutter_screenutil 包,該包主要用來實(shí)現(xiàn)屏幕適配.閑話休提,讓我們一起Talk Flutter吧。 我們?cè)诒菊禄刂薪榻B的包是 flutter_screenutil ,它主要用來做屏幕和字體大小的適配,它的實(shí)現(xiàn)原理和我們?cè)谏弦徽禄刂薪榻B的屏幕

    2024年02月13日
    瀏覽(17)
  • Emacs之改造最快文本搜索工具ripgrep(一百一十九)

    Emacs之改造最快文本搜索工具ripgrep(一百一十九)

    簡(jiǎn)介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長(zhǎng)! 優(yōu)質(zhì)專欄: Audio工程師進(jìn)階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑,只有行動(dòng)才是治療恐懼和懶惰的唯一良藥. 更多原創(chuàng),歡迎關(guān)注:An

    2024年02月15日
    瀏覽(21)
  • Emacs之實(shí)現(xiàn)跨程序選中自動(dòng)復(fù)制功能(一百一十八)

    Emacs之實(shí)現(xiàn)跨程序選中自動(dòng)復(fù)制功能(一百一十八)

    簡(jiǎn)介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語音方案、音視頻、編解碼等技術(shù),與大家一起成長(zhǎng)! 優(yōu)質(zhì)專欄: Audio工程師進(jìn)階系列 【 原創(chuàng)干貨持續(xù)更新中…… 】?? 人生格言: 人生從來沒有捷徑,只有行動(dòng)才是治療恐懼和懶惰的唯一良藥. 更多原創(chuàng),歡迎關(guān)注:An

    2024年02月15日
    瀏覽(30)
  • C/C++基礎(chǔ)講解(一百一十九)之經(jīng)典篇(最優(yōu)美的圖案)

    很多時(shí)候,特別是剛步入大學(xué)的學(xué)子們,對(duì)于剛剛開展的計(jì)算機(jī)課程基本上是一團(tuán)迷霧,想要弄明白其中的奧秘,真的要花費(fèi)一些功夫,我和大家一樣都是這么啃過來的,從不知到知知,懵懂到入門,每一步都走的很艱辛,課程上,大學(xué)老師基本上講解上機(jī)實(shí)操得時(shí)間特別有

    2024年02月09日
    瀏覽(21)
  • 第一百一十五天學(xué)習(xí)記錄:C++提高:STL初識(shí)(黑馬教學(xué)視頻)

    第一百一十五天學(xué)習(xí)記錄:C++提高:STL初識(shí)(黑馬教學(xué)視頻)

    1、長(zhǎng)久以來,軟件界一直希望建立一種可重復(fù)利用的東西 2、C++的面向?qū)ο蠛头盒途幊趟枷?,目的就是重?fù)性的提升 3、大多數(shù)情況下,數(shù)據(jù)結(jié)構(gòu)和算法都未能有一套標(biāo)準(zhǔn),導(dǎo)致被迫從事大量重復(fù)工作 4、為了建立數(shù)據(jù)結(jié)構(gòu)和算法的一套標(biāo)準(zhǔn),誕生了STL 1、STL,標(biāo)準(zhǔn)模板庫 2、

    2024年02月16日
    瀏覽(21)
  • 客快物流大數(shù)據(jù)項(xiàng)目(一百一十七):網(wǎng)關(guān) Spring Cloud Gateway

    客快物流大數(shù)據(jù)項(xiàng)目(一百一十七):網(wǎng)關(guān) Spring Cloud Gateway

    文章目錄 網(wǎng)關(guān) Spring Cloud Gateway 一、簡(jiǎn)介 1、功能特性

    2024年02月04日
    瀏覽(18)
  • 第一百一十三天學(xué)習(xí)記錄:C++提高:類模板(黑馬教學(xué)視頻)

    第一百一十三天學(xué)習(xí)記錄:C++提高:類模板(黑馬教學(xué)視頻)

    類模板作用: 建立一個(gè)通用類,類中的成員 數(shù)據(jù)類型可以不具體定制,用一個(gè)虛擬的類型來代表。 語法: 解釋: template … 聲明創(chuàng)建模板 typename … 表面其后面的符號(hào)是一種數(shù)據(jù)類型,可以用class代替 T … 通用的數(shù)據(jù)類型,名稱可以替換,通常為大寫字母 總結(jié):類模板和函

    2024年02月16日
    瀏覽(23)
  • 二百一十、Hive——Flume采集的JSON數(shù)據(jù)文件寫入Hive的ODS層表后字段的數(shù)據(jù)殘缺

    二百一十、Hive——Flume采集的JSON數(shù)據(jù)文件寫入Hive的ODS層表后字段的數(shù)據(jù)殘缺

    在用Flume把Kafka的數(shù)據(jù)采集寫入Hive的ODS層表的HDFS文件路徑后,發(fā)現(xiàn)HDFS文件中沒問題,但是ODS層表中字段的數(shù)據(jù)卻有問題,字段中的JSON數(shù)據(jù)不全 1、ODS層建靜態(tài)分區(qū)外部表,F(xiàn)lume直接寫入ODS層表的HDFS路徑下 2、用get_json_object進(jìn)行解析 注意 :使用JsonSerDe時(shí),每行必須是一個(gè)完整

    2024年02月03日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包