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

【大數(shù)據(jù)】Hive SQL語言(學(xué)習(xí)筆記)

這篇具有很好參考價(jià)值的文章主要介紹了【大數(shù)據(jù)】Hive SQL語言(學(xué)習(xí)筆記)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、DDL數(shù)據(jù)定義語言

1、建庫

1)數(shù)據(jù)庫結(jié)構(gòu)

【大數(shù)據(jù)】Hive SQL語言(學(xué)習(xí)筆記),大數(shù)據(jù),hive,sql

默認(rèn)的數(shù)據(jù)庫叫做default,存儲于HDFS的:/user/hive/warehouse

用戶自己創(chuàng)建的數(shù)據(jù)庫存儲位置:/user/hive/warehouse/database_name.db

2)創(chuàng)建數(shù)據(jù)庫

create (database|schema) [if not exists] database_name
[comment database_comment]
[location hdfs_path]
[with dbproperties (property_name=property_value, ...)];
  • comment:數(shù)據(jù)庫的注釋說明語句
  • location:指定數(shù)據(jù)庫在HDFS存儲位置,默認(rèn)/user/hive/warehouse/dbname.db
  • with dbproperties:用于指定一些數(shù)據(jù)庫的屬性配置。

3)刪除數(shù)據(jù)庫

drop (database|schema) [if exists] database_name [restrict|cascade];

默認(rèn)行為是RESTRICT,這意味著僅在數(shù)據(jù)庫為空時(shí)才刪除它。

若要?jiǎng)h除帶有表的數(shù)據(jù)庫(不為空的數(shù)據(jù)庫),可以使用CASCADE。

2、建表

1)建表語法樹

create table  [if not exists] [db_name.]table_name
(col_name data_type [comment col_comment], ... )
[comment table_comment]
[row format delimited …];
-- 創(chuàng)建數(shù)據(jù)庫并切換使用
create database if not exists itheima;
use itheima;
-- ddl create table
create table t_archer(
    id int comment "ID",
    name string,
    hp_max int,
    mp_max int,
    attack_max int,
    defense_max int,
    attack_range string,
    role_main string,
    role_assist string
)
row format delimited
fields terminated by "\t";

2)指定分隔符

ROW FORMAT DELIMITED:用于指定字段之間等相關(guān)的分隔符才能正確的讀取解析數(shù)據(jù)。

建表時(shí)如果沒有row format語法指定分隔符,則采用默認(rèn)分隔符(‘\001’)。

3)Hive注釋信息中文亂碼解決

-- 注意 下面sql語句是需要在MySQL中執(zhí)行  修改Hive存儲的元數(shù)據(jù)信息(metadata)
use hive3;
show tables;

alter table hive3.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table hive3.TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table hive3.PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table hive3.PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table hive3.INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

3、show語法

Show相關(guān)的語句可以幫助用戶查詢相關(guān)信息

-- 1、顯示所有數(shù)據(jù)庫 SCHEMAS和DATABASES的用法 功能一樣
show databases;
show schemas;

-- 2、顯示當(dāng)前數(shù)據(jù)庫所有表
show tables;
SHOW TABLES [IN database_name]; --指定某個(gè)數(shù)據(jù)庫

-- 3、查詢顯示一張表的元數(shù)據(jù)信息
desc formatted t_team_ace_player;

二、DML數(shù)據(jù)操縱語言

1、Load 加載

在Hive中建表成功之后,就會在HDFS上創(chuàng)建一個(gè)與之對應(yīng)的文件夾,文件夾名是表名

文件夾父路徑:/user/hive/warehouse/xxx.db

文件夾父路徑是由參數(shù)hive.metastore.warehouse.dir控制

【大數(shù)據(jù)】Hive SQL語言(學(xué)習(xí)筆記),大數(shù)據(jù),hive,sql

Load語法:

load data [local] inpath 'filepath' [overwrite] into table tablename;
  • filepath:表示待移動數(shù)據(jù)的路徑。
  • 指定local:將在本地文件系統(tǒng)(Hiveserver2服務(wù)所在機(jī)器)中查找文件路徑。
  • 沒有指定local:直接使用這個(gè)URI。

2、Insert 插入

插入數(shù)據(jù)會觸發(fā)MapReduce,慢死算了…??

insert + select:將后面查詢返回的結(jié)果作為內(nèi)容插入到指定表中,需要保證查詢結(jié)果列的數(shù)目和需要插入數(shù)據(jù)表格的列數(shù)目一致。

insert into table student_from_insert select num,name from student;

三、DQL數(shù)據(jù)查詢語言

就是正常的sql語言 ??

四、Hive 函數(shù)

1、函數(shù)分類

UDF:普通函數(shù),一進(jìn)一出

UDAF:聚合函數(shù),多進(jìn)一出

UDTF:表生成函數(shù),一進(jìn)多出

【大數(shù)據(jù)】Hive SQL語言(學(xué)習(xí)筆記),大數(shù)據(jù),hive,sql文章來源地址http://www.zghlxwxcb.cn/news/detail-725015.html

2、內(nèi)置函數(shù)

1)字符串函數(shù)

-- Hive 常用的內(nèi)置函數(shù)
show functions;
describe function extended count;


-- String Functions 字符串函數(shù)
select length("itcast");
select reverse("itcast");

select concat("angela","baby");
-- 帶分隔符字符串連接函數(shù):concat_ws(separator, [string | array(string)]+)
select concat_ws('.', 'www', array('itcast', 'cn'));

-- 字符串截取函數(shù):substr(str, pos[, len]) 或者  substring(str, pos[, len])
select substr("angelababy",-2); --pos是從1開始的索引,如果為負(fù)數(shù)則倒著數(shù)
select substr("angelababy",2,2);

-- 分割字符串函數(shù): split(str, regex)
-- split針對字符串?dāng)?shù)據(jù)進(jìn)行切割 返回是數(shù)組array 可以通過數(shù)組的下標(biāo)取內(nèi)部的元素 注意下標(biāo)從0開始的
select split('apache hive', ' ');
select split('apache hive', ' ')[0];
select split('apache hive', ' ')[1];

2)日期函數(shù)

-- Date Functions 日期函數(shù)
-- 獲取當(dāng)前日期: current_date
select current_date();
-- 獲取當(dāng)前UNIX時(shí)間戳函數(shù): unix_timestamp
select unix_timestamp();
-- 日期轉(zhuǎn)UNIX時(shí)間戳函數(shù): unix_timestamp
select unix_timestamp("2011-12-07 13:01:03");
-- 指定格式日期轉(zhuǎn)UNIX時(shí)間戳函數(shù): unix_timestamp
select unix_timestamp('20111207 13:01:03','yyyyMMdd HH:mm:ss');
-- UNIX時(shí)間戳轉(zhuǎn)日期函數(shù): from_unixtime
select from_unixtime(1618238391);
select from_unixtime(0, 'yyyy-MM-dd HH:mm:ss');
-- 日期比較函數(shù): datediff  日期格式要求'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'
select datediff('2012-12-08','2012-05-09');
-- 日期增加函數(shù): date_add
select date_add('2012-02-28',10);
-- 日期減少函數(shù): date_sub
select date_sub('2012-01-1',10);

3)數(shù)學(xué)函數(shù)

-- Mathematical Functions 數(shù)學(xué)函數(shù)
-- 取整函數(shù): round  返回double類型的整數(shù)值部分 (遵循四舍五入)
select round(3.1415926);
-- 指定精度取整函數(shù): round(double a, int d) 返回指定精度d的double類型
select round(3.1415926,4);
-- 取隨機(jī)數(shù)函數(shù): rand 每次執(zhí)行都不一樣 返回一個(gè)0到1范圍內(nèi)的隨機(jī)數(shù)
select rand();
-- 指定種子取隨機(jī)數(shù)函數(shù): rand(int seed) 得到一個(gè)穩(wěn)定的隨機(jī)數(shù)序列
select rand(3);

4)條件函數(shù)

-- Conditional Functions 條件函數(shù)
-- 使用之前課程創(chuàng)建好的student表數(shù)據(jù)
select * from student limit 3;

-- if條件判斷: if(boolean testCondition, T valueTrue, T valueFalseOrNull)
select if(1=2,100,200);
select if(sex ='男','M','W') from student limit 3;

-- 空值轉(zhuǎn)換函數(shù): nvl(T value, T default_value)
select nvl("allen","itcast");
select nvl(null,"itcast");

-- 條件轉(zhuǎn)換函數(shù): CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END
select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end;
select case sex when '男' then 'male' else 'female' end from student limit 3;

到了這里,關(guān)于【大數(shù)據(jù)】Hive SQL語言(學(xué)習(xí)筆記)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 大數(shù)據(jù)技術(shù)之Hive SQL題庫-中級

    大數(shù)據(jù)技術(shù)之Hive SQL題庫-中級

    1)表結(jié)構(gòu) user_id(用戶id) gender(性別) birthday(生日) 101 男 1990-01-01 102 女 1991-02-01 103 女 1992-03-01 104 男 1993-04-01 2)建表語句 hive 3)數(shù)據(jù)裝載 hive 1)表結(jié)構(gòu) sku_id (商品id) name (商品名稱) category_id (分類id) from_date (上架日期) price (商品價(jià)格) 1 xiaomi 10 1 2020-01-01 2000 6 洗碗機(jī) 2 2020-02-01

    2024年02月11日
    瀏覽(22)
  • 愛奇藝大數(shù)據(jù)加速:從Hive到Spark SQL

    愛奇藝大數(shù)據(jù)加速:從Hive到Spark SQL

    01 愛奇藝自2012年開展大數(shù)據(jù)業(yè)務(wù)以來,基于大數(shù)據(jù)開源生態(tài)服務(wù)建設(shè)了一系列平臺,涵蓋了數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)應(yīng)用等整個(gè)大數(shù)據(jù)流程,為公司的運(yùn)營決策和各種數(shù)據(jù)智能業(yè)務(wù)提供了強(qiáng)有力的支持。隨著數(shù)據(jù)規(guī)模的不斷增長和計(jì)算復(fù)雜度的增加,如何快速挖

    2024年02月08日
    瀏覽(20)
  • Hive命令行運(yùn)行SQL將數(shù)據(jù)保存到本地如何去除日志信息

    Hive命令行運(yùn)行SQL將數(shù)據(jù)保存到本地如何去除日志信息

    先有需求需要查詢hive數(shù)倉數(shù)據(jù)并將結(jié)果保存到本地,但是在操作過程中總會有日志信息和表頭信息一起保存到本地,不符合業(yè)務(wù)需要,那如何才能解決該問題呢? 廢話不多少,直接上代碼介紹:

    2024年01月17日
    瀏覽(45)
  • 【Spark大數(shù)據(jù)習(xí)題】習(xí)題_Spark SQL&&&Kafka&& HBase&&Hive

    PDF資源路徑-Spark1 PDF資源路徑-Spark2 一、填空題 1、Scala語言的特性包含面向?qū)ο缶幊?、函?shù)式編程的、靜態(tài)類型的、可擴(kuò)展的、可以交互操作的。 2、在Scala數(shù)據(jù)類型層級結(jié)構(gòu)的底部有兩個(gè)數(shù)據(jù)類型,分別是 Nothing和Null。 3、在Scala中,聲明變量的有var聲明變量和val聲明常

    2024年02月06日
    瀏覽(21)
  • Hive Sql 大全(hive函數(shù),hive表)

    本節(jié)基本涵蓋了Hive日常使用的所有SQL,因?yàn)镾QL太多,所以將SQL進(jìn)行了如下分類: 一、DDL語句(數(shù)據(jù)定義語句): 對數(shù)據(jù)庫的操作:包含創(chuàng)建、修改數(shù)據(jù)庫 對數(shù)據(jù)表的操作:分為內(nèi)部表及外部表,分區(qū)表和分桶表 二、DQL語句(數(shù)據(jù)查詢語句): 單表查詢、關(guān)聯(lián)查詢 hive函數(shù)

    2024年02月19日
    瀏覽(49)
  • 【數(shù)據(jù)庫·關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL·學(xué)習(xí)筆記】Microsoft SQL Server數(shù)據(jù)庫的建立和刪除

    【數(shù)據(jù)庫·關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL·學(xué)習(xí)筆記】Microsoft SQL Server數(shù)據(jù)庫的建立和刪除

    開發(fā)環(huán)境:SQL Server Management Studio(SSMS) 利用數(shù)據(jù)庫對象資源管理器創(chuàng)建數(shù)據(jù)庫 (1)右擊對象資源管理器中的數(shù)據(jù)庫,選擇新建數(shù)據(jù)庫 (2)在新建數(shù)據(jù)庫界面輸入數(shù)據(jù)庫名稱 ,并選擇確定 利用CREAT DATABASE命令在SSM工具的新建查詢中創(chuàng)建數(shù)據(jù)庫 1.語法格式 CREATE DATABASE dat

    2024年02月08日
    瀏覽(34)
  • flink sql 實(shí)戰(zhàn)實(shí)例 及延伸問題:聚合/數(shù)據(jù)傾斜/DAU/Hive流批一體 等

    flink sql 實(shí)戰(zhàn)實(shí)例 及延伸問題:聚合/數(shù)據(jù)傾斜/DAU/Hive流批一體 等

    ? 需求:上游是一個(gè) kafka 數(shù)據(jù)源,數(shù)據(jù)內(nèi)容是用戶 QQ 等級變化明細(xì)數(shù)據(jù)(time,uid,level)。需要你求出當(dāng)前每個(gè)等級的用戶數(shù)。 ? 需求:數(shù)據(jù)源:用戶心跳日志(uid,time,type)。計(jì)算分 Android,iOS 的 DAU,最晚一分鐘輸出一次當(dāng)日零點(diǎn)累計(jì)到當(dāng)前的結(jié)果。 經(jīng)過測試 在fl

    2024年02月22日
    瀏覽(34)
  • 探索數(shù)據(jù)湖中的巨獸:Apache Hive分布式SQL計(jì)算平臺淺度剖析!

    探索數(shù)據(jù)湖中的巨獸:Apache Hive分布式SQL計(jì)算平臺淺度剖析!

    對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,SQL是目前最為方便的編程工具 大數(shù)據(jù)體系中充斥著非常多的統(tǒng)計(jì)分析場景,所以,使用SQL去處理數(shù)據(jù),在大數(shù)據(jù)中也是有極大的需求的 MapReduce支持程序開發(fā)(Java、Python等),但不支持SQL開發(fā) Apache Hive是一款分布式SQL計(jì)算的工具 , 其主要功能是: 將

    2024年02月11日
    瀏覽(139)
  • [hive] 在hive sql中定義變量

    在Hive SQL中,可以使用 SET 命令來定義變量。 變量可以用于存儲和引用常量或表達(dá)式的值,以便在查詢中重復(fù)使用。 下面是定義和使用變量的示例: 使用 SET 命令定義了一個(gè)名為 my_var 的變量, 在查詢中使用 ${my_var} 引用變量。這樣,變量的值將被替換為實(shí)際的字符串,從而

    2024年02月03日
    瀏覽(21)
  • 使用DataX工具連接hive數(shù)據(jù)庫:java.sql.SQLException: Could not establish connection to jdbc:hive2://master:1000

    使用DataX工具連接hive數(shù)據(jù)庫:java.sql.SQLException: Could not establish connection to jdbc:hive2://master:1000

    Code:[DBUtilErrorCode-10], Description:[連接數(shù)據(jù)庫失敗. 請檢查您的 賬號、密碼、數(shù)據(jù)庫名稱、IP、Port或者向 DBA 尋求幫助(注意網(wǎng)絡(luò)環(huán)境).]. - 具體錯(cuò)誤信息為:java.sql.SQLException: Could not establish connection to jdbc:hive2://master:10000/datax: Required field \\\'serverProtocolVersion\\\' is unset! Struct:TOpenSessionRe

    2024年04月09日
    瀏覽(92)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包