您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“hive命令有哪些調用方式”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“hive命令有哪些調用方式”這篇文章吧。
hive命令的3種調用方式
hive-script.sql類似于script一樣,直接寫查詢命令就行
例如:
[root@cloud4 shell]# vi hive_script3.sql
select * from t1;
select count(*) from t1;
不進入交互模式,執行一個hive script
這里可以和靜音模式-S聯合使用,通過第三方程序調用,第三方程序通過hive的標準輸出獲取結果集。
$HIVE_HOME/bin/hive -S -f /home/my/hive-script.sql (不會顯示mapreduct的操作過程)
#hive 啟動
hive>quit; 退出hive
hive> show databases; 查看數據庫
hive> create database test; 創建數據庫
hive> use default; 使用哪個數據庫
hive>create table t1 (key string); 創建表
對于創建表我們可以選擇讀取文件字段按照什么字符進行分割
例如:
hive>create table t1(id ) '/wlan'
partitioned by (log_date string) 表示通過log_date進行分區
row format delimited fields terminated by '\t' 表示代表用‘\t’進行分割來讀取字段
stored as textfile/sequencefile/rcfile/; 表示文件的存儲的格式
存儲格式的參考地址:http://blog.csdn.net/yfkiss/article/details/7787742
textfile 默認格式,數據不做壓縮,磁盤開銷大,數據解析開銷大。
可結合Gzip、Bzip2使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對數據進行切分,從而無法對數據進行并行操作。
實例:
[plain] view plaincopy
> create table test1(str STRING)
> STORED AS TEXTFILE;
OK
Time taken: 0.786 seconds
#寫腳本生成一個隨機字符串文件,導入文件:
> LOAD DATA LOCAL INPATH '/home/work/data/test.txt' INTO TABLE test1;
Copying data from file:/home/work/data/test.txt
Copying file: file:/home/work/data/test.txt
Loading data to table default.test1
OK
Time taken: 0.243 seconds
SequenceFile是Hadoop API提供的一種二進制文件支持,其具有使用方便、可分割、可壓縮的特點。
SequenceFile支持三種壓縮選擇:NONE, RECORD, BLOCK。 Record壓縮率低,一般建議使用BLOCK壓縮。
示例:
[plain] view plaincopy
> create table test2(str STRING)
> STORED AS SEQUENCEFILE;
OK
Time taken: 5.526 seconds
hive> SET hive.exec.compress.output=true;
hive> SET io.seqfile.compression.type=BLOCK;
hive> INSERT OVERWRITE TABLE test2 SELECT * FROM test1;
實例:
[plain] view plaincopy
> create table test3(str STRING)
> STORED AS RCFILE;
OK
Time taken: 0.184 seconds
> INSERT OVERWRITE TABLE test3 SELECT * FROM test1;
總結:
hive>show tables; 查看該數據庫中的所有表
hive>show tables ‘*t*’; //支持模糊查詢
hive>show partitions t1; //查看表有哪些分區
hive>drop table t1 ; 刪除表有local的速度明顯比沒有local慢:
hive>load data inpath '/root/inner_table.dat' into table t1; 移動hdfs中數據到t1表中
hive>load data local inpath '/root/inner_table.dat' into table t1; 上傳本地數據到hdfs中
hive> !ls; 查詢當前linux文件夾下的文件以上是“hive命令有哪些調用方式”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。