一、常用ddl
建表:create [external] table [if not exists] table_name
[(col_name data_type [comment col_comment], ...)]
[comment table_comment]
[partitioned by (col_name data_type [col_comment], col_name data_type [comment col_comment], ...)]
[clustered by (col_name, col_name, ...) [sorted by (col_name, ...)] into num_buckets buckets]
[[row format row_format] [stored as file_format]
| stored by 'storage.handler.class.name' [with serdeproperties (...)]
][location hdfs_path]
[as select_statement]
表重名:
alter table student rename to student1;
更改字段型別:
alter table student change name1 name1 string;
增加分割槽:
alter table student_p add partition(part='a') partition(part='b');
增加/更新列:
alter table table_name add|replace columns (col_name data_type [comment col_comment], ...)
(注:add是代表新增一欄位,字段位置在所有列後面(partition列前),replace則是表示替換表中所有字段。)
alter table table_name change [column] col_old_name col_new_name column_type [comment col_comment] [first|after column_name]
外部表轉內部表:
alter table tablea set tblproperties('external'='false');
二、載入 / 匯出資料
載入資料:
hive> load data local inpath '/home/hadoop/hivedata/students.txt' overwrite into table student;
hive> load data inpath 'hdfs://mini1:9000/hivedata/course.txt' overwrite into table course;
匯出檔案到檔案:
hive> insert overwrite local directory '/home/hadoop/hivedata/outdata' select * from student;
hive> insert overwrite directory 'hdfs://mini1:9000/hivedata/outdatasc'
row format delimited fields terminated by ','
select * from student;
資料寫入到檔案系統時進行文字序列化,且每列用^a來區分,\n為換行符。用more命令檢視時不容易看出分割符,可以使用: sed -e 's/\x01/|/g' filename來檢視,如:sed -e 's/\x01/,/g' 000000_0
三、hive shell:
hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-s]
eg: hive -e 'select count(*) from student'
hive -f query.sql
hive --hiveconf hive.log.dir=/tmp/ --hiveconf hive.log.file=tmp.log -f query.sql
hive --hiveconf hive.root.logger=info,console -f query.sql -- 配置引數 $
hive --hivevar queue_name=test_queue -f query.sql --自定義引數 $
set hive.cli.print.header=true;
set mapreduce.job.queuename=test_queue;
set -v; --檢視所有定義的引數
set hive.cli.print.header; -- 檢視某引數值
四、udf
hive>add jar /home/hadoop/udf.jar; --$hive_home/lib/
hive>create temporary function helloudf as 'org.apache.hadoop.hive.ql.udf.helloudf';
hive>create function helloudf as 'org.apache.hadoop.hive.ql.udf.helloudf' using jar 'hdfs://hadoop001:9000/lib/g6-hadoop-1.0.jar';
#udf remove function
drop function test_udf;
#udf add function
create function test_udf as 'com.xys.bigdata.testudf' using jar 'hdfs://nameservice1/user/hadoop/jar/hive-test-1.4.jar';
# test udf
select test_udf('20200101');
Redis學習記錄 入門(一)
sudo apt get update sudo apt get install redis server 啟動redis伺服器 redis server 檢視 redis 是否啟動?yum install gcc c redis是c語言開發的,安裝redis需要c語言的環境 yum install...
python 學習隨筆記錄 入門
本人學生黨,想要在暑假學習python,此部落格用於記錄學習過程。有興趣的小夥伴也可以跟著一起學習哦,希望這些筆記對你們也有幫助。編譯型語言和解釋型語言 編譯型語言 程式執行速度快,同等條件下對系統的要求較低。開發作業系統 大型應用程式,資料庫系統。c c,解釋型語言 網頁指令碼對不同系統平台間的相...
Python Logging 日誌記錄入門學習
python logging原來真的遠比我想象的要複雜很多很多,學習路線堪比git。但是又繞不過去,alternatives又少,所以必須要予以重視,踏踏實實認認真真的來好好學學才行。學習logging的目的 簡單指令碼還好,print足夠。但是稍微複雜點,哪怕是三四個檔案加起來兩三百行 除錯也開始...