一、基本資料型別

標紅的是常用的,
二、集合資料型別(不常用)

注意:集合資料型別的創建簡單,但往里面添加資料難,
下面是我們創建表的同時指定添加資料時規范的陳述句:

欄位解釋:
row format delimited fields terminated by ',' -- 列分隔符
collection items terminated by '_' --MAP STRUCT 和 ARRAY 的分隔符(資料分割符號)
map keys terminated by ':' -- MAP 中的 key 與 value 的分隔符
lines terminated by '\n'; -- 行分隔符
意思就是我們創建好集合型別的表之后,在進行添加資料時,同一個屬性之間的資料要以'_'分割開;不同屬性的資料要以'_'分隔開;若有map型別的集合,其中key 與 value 要用':'分隔開,當然',' 、'_'、':'、 '\n'也可以被指定為其他符號,
接著我們創建一個文本test1.txt,添加如下資料

匯入文本資料到測驗表( load data local inpath '檔案路徑' into table 表名;)

測驗一下,我們看資料添加成功沒有:

那么單獨取表中的一列資料如何做?

如上,使用(屬性名.get()方法是取不到的)
正確做法:
select 屬性名[查找的欄位] from 表名;
查找test1表里屬性為menu,欄位為‘rou’的資料:
select menu['rou'] from test1 limit 1;
三、型別轉換
Hive 的原子資料型別是可以進行隱式轉換的,類似于 Java 的型別轉換,例如某運算式使用 INT 型別,TINYINT 會自動轉換為 INT 型別,但是 Hive 不會進行反向轉化,例如,某表 達式使用 TINYINT 型別,INT 不會自動轉換為 TINYINT 型別,它會回傳錯誤,除非使用 CAST 操作,
1)隱式型別轉換規則如下
(1)任何整數型別都可以隱式地轉換為一個范圍更廣的型別,如 TINYINT 可以轉換成
INT,INT 可以轉換成 BIGINT,
(2)所有整數型別、FLOAT 和 STRING 型別都可以隱式地轉換成 DOUBLE,
(3)TINYINT、SMALLINT、INT 都可以轉換為 FLOAT,
(4)BOOLEAN 型別不可以轉換為任何其它的型別,
2)可以使用 CAST 操作顯示進行資料型別轉換
例如 CAST('1' AS INT)將把字串'1' 轉換成整數 1;如果強制型別轉換失敗,如執行 CAST('X' AS INT),運算式回傳空值 NULL,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295364.html
標籤:其他
