基礎建表語句:
create [external] table [if not exists] table_name
[(col_name data_type [comment col_comment], ...)]
[comment table_comment]
[partitioned by (col_name data_type [comment col_comment], ...)]
[clustered by (col_name, col_name, ...)
[sorted by (col_name [asc|desc], ...)] into num_buckets buckets]
[row format row_format]
[stored as file_format]
[location hdfs_path]
小demo:
create external table transaction1(id int,*** string,age int,date string,role string,region string) row format delimited fields terminated by ' ' stored as textfile location '/user/hdfs/source/hive_test' ;
1、建立表指定的路徑
hadoop fs -mkdir /user/hdfs/source/hive_test
2、建表:包括是否外部表、表名、表字段、表屬性。
a.指定分隔符:其中,fields terminated by 『\t』 是指定字段分隔符也可用用其他符號如「,」,「|」等等,lines terminated by '\n』是指定行分隔符(一般不寫,預設是換行符)。
b.指定檔案格式:上面語句就是建立文字格式的**,一般如果集群的hdfs沒有設定檔案格式,hive**預設的便是txt文字格式的,可通過命令hadoop fs -cat /**目錄/* (*或者檔名)檢視到檔案的內容。hive**也可以設定其他格式,stored as sequencefile 設定為sqquencefile格式;stored as rcfile 設定為rcfile格式。
c.指定檔案儲存位置:上面語句中location '/user/hdfs/source/hive_test』便是指定了**在hdfs儲存的目錄,建表完成可在/data/下看到已建立hive_test目錄,指定目錄一般在大型集群上比較常用的,因為集群的規模越大,使用者就越多,集群管理者便會對使用者做許可權管理,許可權管理中必定會涉及對hdfs的目錄進行管理,這個時候使用者可能沒有預設warehouse目錄的許可權了,建表便需要指定**目錄了。
d.指定分割槽:partitioned by ()語句便是指定某字段為分割槽字段
3、將資料檔案丟到指定位置
4、select * from ***;查詢校驗
5、drop table ***;刪除表
6、檢視hdfs中檔案是否存在
Hive建立外部表
hive建立外部表 1.環境需求 hadoop 2.6.0 hive 1.2.1 hue 3.7.0 2.開發過程 1 建立hdfs目錄 hadoop dfs mkdir wy input 2 上傳本地資料到hdfs中 hadoop dfs put usr wy writing.txt wy inp...
hive 外部表 建立示例
hdfs dfs mkdir p external sr sr created hdfs dfs mkdir p external sr sr assign hdfs dfs mkdir p external sr sr cancelled hdfs dfs mkdir p external sr ...
hive建表 一 建立外部表
未被external修飾的是內部表 managed table 被external修飾的為外部表 external table 區別 內部表資料由hive自身管理,外部表資料由hdfs管理 內部表資料儲存的位置是hive.metastore.warehouse.dir 預設 user hive wa...