07 ,外部表,文本文件,parquet-snappy 文件

本小妞迷上赌 提交于 2019-12-16 07:57:04

一 ,概览 :

1 ,加载数据和创建表同时完成。

2 ,先有数据,后又表。

3 ,链接 : 外部表只是一个链接

4 ,不需要移动数据 :

他只是把表结构映射到数据文件,不需要移动数据到自己的目录下。

二 ,外部表 ,文本文件 :

1 ,建三个文件 :

  1. aa.txt :
1,aa,10
2,bb,20
3,cc,30
  1. bb.txt :
4,dd,50
5,ee,1210
6,ff,ds
  1. cc.txt :
7,sfl,3223432
8,fe,432
9,dsds,9868

2 ,将这些文件上传到 S3 :

在这里插入图片描述

3 ,建表 : 外部表,数据位置,分隔符

  1. 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. 结果 : 数据都被扫描进去了
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 ,查看表信息 :

  1. 查看 : sql 语句
desc extended person;
  1. 结果 : 外部表
tableType:EXTERNAL_TABLE
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!