栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Spark DataSource表

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spark DataSource表

一、什么是DataSource表
二、DataSource表的优势
三、DataSource表的缺点
四、建DataSource表方法
 

一、什么是DataSource表

Spark除了兼容Hive表之外,还支持datasource表。Spark针对Datasource表做了多项优化,读写性能较Hive表有非常大的提升。

二、DataSource表的优势

(1)写入文件方面:

DataSource表在文件写入阶段并不会挨个重命名小文件,而是直接将整个临时文件目录重命名为分区名后移动到对应位置,大大减少了rename操作时间,进而减少了任务执行的总时间,在HDFS压力比较大的时候,对任务的执行时间影响非常小。

而Spark在写Hive表时,如果小文件较多,会在rename小文件和分区的阶段耗费大量时间,如下所示:

 

可以看到IDE中显示的任务执行时间,比Spark UI中各stage实际执行的总时间要长,实际上多出来的长达几分钟的时间,是在将HDFS的临时文件rename到目标目录。 

如上图所示,在Spark将数据写入到Hive表的过程中,每个task产生的临时文件都将被写入到临时目录,而每一个临时文件都会被rename到目标HDFS目录下。小文件数量越多,该rename操作所花费的时间就越长。

(2)读取文件方面:

DataSource在读文件的时候会将小文件合并,提升读的效率。

三、DataSource表的缺点

(1)DataSource表无法用多线程写入同一个表的不同分区。

(2)创建Parquet格式表时,如果字段类型为数组,该字段不能有空值,否则读写时会报错。

四、建DataSource表方法

CREATE TABLE database.tablename (

`job_flow_name`            string                       ,

 ......

`statis_date`                   string          – 必须先定义分区字段

)

using parquet                           – SparkSQL内置格式都支持,如parquet、ORC等

partitioned by (statis_date);     – 这里不需要指定分区字段的类型

-------------------------------------------------------------------------------------------------------------------

根据查询建临时表:

CREATE TABLE tmpbase.tmpname 

using parquet as

select t1.xxxx,

           t2.xxx,

......

;

下图所示内容摘自右方链接中的《Spark权威指南》:

关注微信公众号【飞哥大数据】,回复666 获取2022年100+公司面试真题,以及spark与flink面试题汇总

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/897254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号