hive中map,array和structs使用
1:怎樣匯入文字檔案(格式是怎樣的?),2:怎樣查詢資料,已經能否在join中使用?在子查詢中使用?等等
知道怎麼在hive中匯入陣列不?
例如:我想把 陣列[1,2,3] 和 陣列 ["a","b","c"]
匯入到table1中
create table table2 ( a array, b array);
那麼 我如何 匯入呢?使得
select * from table1;
j結果為:
[1,2,3] ["a","b","c"]
同樣 在 hive 中 對於 map
怎樣 查詢呢?
例如 create table table2 ( a map>);
select * from table2 結果為:
那麼 我想獲得 key 為 d01的value值
該怎麼操作呢
關於陣列的操作說明:
drop table table2;
create table table2 (a array, b array)
row format delimited
fields terminated by '\t'
collection items terminated by ',';
load data local inpath "../hive/examples/files/arraytest.txt" overwrite into table table2;
arraytest.txt中的資料形式為:(不同陣列間用\t分割,同一陣列內不同元素用逗號分割)
b00,b01 b00,b01
b00,b01 b00,b01
b00,b01 b00,b01
b00,b01 b00,b01
hive> select * from table2;
ok["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
time taken: 0.056 seconds
hive> select a from table2;
ok["b00","b01"]
["b00","b01"]
["b00","b01"]
["b00","b01"]
time taken: 15.903 seconds
hive> select a[0] from table2;
okb00
b00b00
b00time taken: 12.913 seconds
hive> select * from table2 where a[0] = b[0];
ok["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
["b00","b01"] ["b00","b01"]
time taken: 11.803 seconds
關於map的操作說明:
drop table table2;
hive> create table table2 (foo string , bar map)
> row format delimited
> fields terminated by '\t'
> collection items terminated by ','
> map keys terminated by ':'
> stored as textfile;
hive> load data local inpath "../hive/examples/files/maptest.txt" overwrite into table table2;
maptest.txt中的檔案格式為:(不同列之間用乙個tab分割,map中key和value用冒號分割,不同k/v間用逗號分割)
a00 b0:b01,b1:b11
a01 b1:b11,b2:b12
a02 b2:b12,b3:b13
a03 b3:b13,b4:b14
hive> select bar from table2;
oktime taken: 19.237 seconds
怎麼根據 key來查詢value呢?
hive> select
bar['b1']
from table2;
okb11
b11null
null
time taken: 11.65 seconds
檢視map中的鍵值對個數:
hive> select size(bar) from table2;ok2
222time taken: 12.137 seconds
HIVE中map,array和structs使用
1 怎樣匯入文字檔案 格式是怎樣的?2 怎樣查詢資料,已經能否在join中使用?在子查詢中使用?等等 知道怎麼在hive中匯入陣列不?例如 我想把 陣列 1,2,3 和 陣列 a b c 匯入到table1中 create table table2 a array,b array 那麼 我如何 匯入...
Hive中建立S3的外部表
hive中建立s3的外部表 資料在s3存放的資料是按時間緯度存放的,每天的資料存放在各自的目錄下,目錄結構如下截圖 每個目錄下面的資料是csv檔案,現在將其匯入到hive中進行查詢,通過建立對應的表結構 sql view plain copy hadoop到s3 hadoop distcp hdfs...
hive操作s3資料
1 hive配置s3訪問許可權 2 建立表 例如create external table table create time bigint comment 獲取時的時間 event name string comment 事件名 timestamp bigint comment 事件發生時間 is...