Hive資料型別

2021-09-10 03:41:11 字數 2145 閱讀 1257

常用的基本資料型別

基本資料型別

所佔位元組

intboolean

float

double

string

複雜資料型別

複雜資料型別

說明array

array型別是由一系列相同資料型別的元素組成。並且可以通過下表來進行訪問。注意:下表從0開始計

mapmap包含key-value鍵值對,可以通過key來訪問元素

struct

struct可以包含不同資料型別元素。相當於乙個物件結構。可以通過物件屬性來訪問

陣列型別

建表語句:create external table xx(xx array)row format delimited fields terminated by '\t' collection items teminated by ',' location '資料路徑';

注:1.ollection items teminated by ','  表示array陣列元素之間用 『,』 隔開

2.建表是可同時建立多個array陣列。例:

元資料:

100,200,300      tom,jary

200,300,500     rose,jack

建表語句:

create external table ex1(info1 array,info2 array) row format delimited fields terminated by '\t' collection items terminated by ',' location '/ex';

結果:map型別

案例一元資料:

tom,23

rose,25

jary,28

建表語句:

create external table m1 (vals map) row format delimited fields terminated by '\t' map keys terminated by ',' location '/map';

查詢語句:

select vals['tom'] from m1;

案列二,要求查詢tom這個人都瀏覽了哪些**,並且為null的值不顯示

源資料(分隔符為空格):

tom 192.168.234.21

rose 192.168.234.21

tom 192.168.234.22

jary 192.168.234.21

tom 192.168.234.24

tom 192.168.234.21

rose 192.168.234.21

tom 192.168.234.22

jary 192.168.234.21

tom 192.168.234.22

tom 192.168.234.23

建表語句

create external table ex (vals map) row format delimited fields terminated by '/t' map keys terminated by ' ' location '/ex';

注意:map型別,列的分割符必須是\t

查詢語句

select vals['tom'] from ex where vals['tom'] is not null;

如果想做去重工作,可以呼叫distinct內建函式

select distinct(ip) from (select vals['tom'] ip from ex where vals['tom'] is not null)ex1;select distinct(vals['tom']) from m2 where vals['tom'] is not null;

struct型別

元資料:

tom 23

rose 22

jary 26

建表語句:

create external table ex (vals struct)row format delimited collection items terminated by ' '  location '/ex';

查詢語句:

select vals.age from ex where vals.name='tom';

Hive資料型別

1 基本資料型別 包含如下型別 整數型別 tinyint smallint int bigint 浮點型別 float double 布林型別 boolean 字串型別 string 舉例 create table person pid int,pname string,married boolea...

Hive資料型別

hive的內建資料型別可以分為兩大類 1 基礎資料型別 2 複雜資料型別。資料型別 所佔位元組 開始支援版本 tinyint 1byte,128 127 smallint 2byte,32,768 32,767 int4byte,2,147,483,648 2,147,483,647 bigint ...

Hive資料型別

列型別 hive支援的資料型別如下 原生資料型別 復合型別 支援傳統的unix時間戳,可選的納秒級精度。支援的轉換 時間戳被解釋是與timezone無關,儲存為從unix紀元的偏移量。提供便利的udf和時區轉換 to utc timestamp,from utc timestamp 所有現有date...