Description HIVE 第一課 : 沒有人會在Hive裡面下 INSERT 命令
為什麼呢?
讓我們繼續看下去...
HIVE 語法 = SQL 語法
CREATE TABLE
在HIVE裡 CREATE TABLE ,會直接在 HDFS 裡面,建立一個與table名稱一樣的資料夾
INSERT INTO
先輸入 hdfs dfs -ls [資料夾位置]
會發現裡面儲存了一個 000000_0 的檔案
哦! 所以 table 裡面的每一筆資料,都是同名資料夾裡的一個檔案
剛剛所講的方式,會產生內部資料表(Internal Table)。
有內部就會有外部 (External Table) 。
這兩種資料表的差異等一下會提到。
所以為什麼沒有人會在HIVE裡面下 INSERT 命令 ?
因為每一筆資料都是一個檔案
Insert N 筆資料,就會有 N 個檔案啊!!!
那應該要怎麼建立資料呢?
更方便的建立資料 (External Table)
在 HDFS 建立一個資料夾
hdfs dfs -mkdir [資料夾名稱]
把資料放進建立好的資料夾
hdfs dfs -put [檔案位置] [資料夾名稱]
建立一個.hive檔案
nano [name].hive
檔案內容 :
CREATE EXTERNAL TABLE zipcode ( cname STRING, dname STRING, zcode STRING )
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE LOCATION '/user/dsa101/tw.zipcode';
Internal Table --> /user/dsa101/hive --> 內部資料表才會產生000000_0檔案
External Table --> /dataset/ --> 外部資料表的來源是原來的檔案
直接在HDFS裡,執行.hive檔
hive -S -f [.hive檔名稱]
查看
hive -S -e "show tables"
-e : SQL from command line
Reactions are currently unavailable
You can’t perform that action at this time.
HIVE 第一課 : 沒有人會在Hive裡面下
INSERT命令為什麼呢?
讓我們繼續看下去...
HIVE 語法 = SQL 語法
CREATE TABLE
CREATE TABLE,會直接在 HDFS 裡面,建立一個與table名稱一樣的資料夾INSERT INTO
在table 裡面
INSERT INTO一筆資料先輸入
hdfs dfs -ls [資料夾位置]會發現裡面儲存了一個 000000_0 的檔案
哦! 所以 table 裡面的每一筆資料,都是同名資料夾裡的一個檔案
所以為什麼沒有人會在HIVE裡面下
INSERT命令 ?因為每一筆資料都是一個檔案
Insert N 筆資料,就會有 N 個檔案啊!!!
那應該要怎麼建立資料呢?
在 HDFS 裡面,
put檔案到 table 的資料夾裡面hdfs dfs -put [檔案] [table資料夾路徑]更方便的建立資料 (External Table)
在 HDFS 建立一個資料夾
hdfs dfs -mkdir [資料夾名稱]把資料放進建立好的資料夾
hdfs dfs -put [檔案位置] [資料夾名稱]建立一個.hive檔案
nano [name].hiveCREATE EXTERNAL TABLE zipcode ( cname STRING, dname STRING, zcode STRING )ROW FORMAT DELIMITED FIELDS TERMINATED BY ','STORED AS TEXTFILE LOCATION '/user/dsa101/tw.zipcode';直接在HDFS裡,執行.hive檔
hive -S -f [.hive檔名稱]-f: SQL from files查看
hive -S -e "show tables"-e: SQL from command line