011.hive建立表、新增表註釋、檢視函式用法、載入資料到hive表
阿新 • • 發佈:2021-08-19
show databases; show tables; 系統自帶的函式 1)檢視系統自帶的函式 hive> show functions; 2)顯示自帶的函式的用法 hive> desc function upper; 3)詳細顯示自帶的函式的用法 hive> desc function extended upper; use qhtest; -- 建立表 create table qhtest.S_test_table (id int, name string, age int) row format delimited fields terminated by',' lines terminated by '\n' stored as parquetfile; -- 建立表 表結構一致,沒有資料 create table if not exists ioczxk_s.S_LS_GZW_sgyzctjxx108800 like iocgjk.O_LS_GZW_sgyzctjxx108800; -- 建立表 表結構一致,複製資料,分割槽表複製過去後變成欄位 create table user_table1 as table_2; -- 建立表指定儲存格式 create table if not exists qhtest.S_test_table ( idint , name string , age int ) row format delimited fields terminated by ',' lines terminated by '\n' stored as parquetfile; -- 插入資料 -- 刪除表 drop table qhtest.S_test_table; -- 查看錶型別 desc formatted qhtest.S_test_table; -- 清空表 truncate table qhtest.S_test_table; 檔案載入到hive表中 上傳檔案到hdfs hdfs dfs -put test_data.txt /user/qh_test_hive/; hdfs載入到hive表 test_data.txt load data local inpath '/opt/qh_ioc/test_data.txt' overwrite into table qhtest.S_test_table; load命令詳解: ================================= 1、load本地資料 //相當於上傳或者複製,原始檔不變 load data local inpath '/home/centos/employee.txt' into table employee; 2、load hdfs資料 load data inpath '/duowan_user.txt' into table duowan; //相當於移動 3、load本地資料 + 覆蓋原始資料 load data local inpath '/home/centos/employee.txt' overwrite into table employee; 4、load hdfs資料 + 覆蓋原始資料 load data inpath '/duowan_user.txt' overwrite into table duowan; describe 表名; 表的詳細資訊
建立分割槽表
-- 添加註釋 create table tb_test ( id varchar(100) comment '使用者id', -- 使用者id age varchar(100) comment '年齡' -- 年齡 ) PARTITIONED BY (occur_period string) row format delimited fields terminated by '\001' lines terminated by '\n' stored as parquetfile comment '測試表';
注意:欄位分隔符和 儲存格式指定只能在hive下使用,spark客戶端不支援,會報錯
Error: org.apache.spark.sql.catalyst.parser.ParseException: Operation not allowed: ROW FORMAT DELIMITED is only compatible with 'textfile', not 'rcfile'(line 1, pos 0)
spark 不為 parquet檔案提供DELIMITERS。
禁止 ROW FORMAT 和 STORED AS (parquet | orc | avro etc.)
https://blog.csdn.net/zhangshenghang/article/details/102459033/
hive下
-- 按月occur_period_month建立分割槽表 分割槽欄位不能出現在表字段中 create table mydb.tb_test( rid int COMMENT '行id' ,id varchar(100) comment '使用者id' ,age varchar(100) comment '年齡' ,creat_time string comment '建立時間' )PARTITIONED BY (occur_period string) row format delimited fields terminated by '\001' lines terminated by '\n' stored as parquetfile; -- 新增表註釋 ALTER TABLE mydb.tb_test SET TBLPROPERTIES ('comment' = '測試表');