一 ,概览 :
1 ,加载数据和创建表同时完成。
2 ,先有数据,后又表。
3 ,链接 : 外部表只是一个链接
4 ,不需要移动数据 :
他只是把表结构映射到数据文件,不需要移动数据到自己的目录下。
二 ,外部表 ,文本文件 :
1 ,建三个文件 :
- aa.txt :
1,aa,10
2,bb,20
3,cc,30
- bb.txt :
4,dd,50
5,ee,1210
6,ff,ds
- cc.txt :
7,sfl,3223432
8,fe,432
9,dsds,9868
2 ,将这些文件上传到 S3 :
3 ,建表 : 外部表,数据位置,分隔符
- sql 语句 :
create external table person(id int,name string,age string)
row format delimited fields terminated by ','
stored as textfile
location 's3://lifecyclebigdata/dataWareHouse/BALABALA/07_hive_outer/person';
- 结果 : 数据都被扫描进去了
1 aa 10
2 bb 20
3 cc 30
4 dd 50
5 ee 1210
6 ff ds
7 sfl 3223432
8 fe 432
9 dsds 9868
三 ,建表,压缩文件 :
1 ,压缩 : csv --> parquet ( 文件列与表列同名 )
spark-submit --master yarn --num-executors 5 --executor-cores 3 --executor-memory 6144m --deploy-mode cluster --class lifecycle01_tool.Tool04_ParseCsvToParquetSnappy s3://lifecyclebigdata/dataWareHouse/BALABALA/00jar/03_hive/hiveLifeCycle-1.0-SNAPSHOT.jar lifecyclebigdata/dataWareHouse/BALABALA/09_testData/01_csv lifecyclebigdata/dataWareHouse/BALABALA/09_testData/02_parquet/res "id,name,age"
2 ,建表 : 外部表,指定列名,默认分割符,snappy,parquet
create external table person(id string,name string,age string)
stored as parquet
location 's3://lifecyclebigdata/dataWareHouse/BALABALA/09_testData/02_parquet/res'
TBLPROPERTIES ('parquet.compress'='SNAPPY');
3 ,查看表信息 :
- 查看 : sql 语句
desc extended person;
- 结果 : 外部表
tableType:EXTERNAL_TABLE
来源:CSDN
作者:孙砚秋
链接:https://blog.csdn.net/qq_34319644/article/details/103531113