前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark Sql 详细介绍

Spark Sql 详细介绍

作者头像
Freedom123
发布2024-03-29 08:59:58
1160
发布2024-03-29 08:59:58
举报
文章被收录于专栏:DevOpsDevOps

0. SparkSQL     SparkSQL完全脱离了Hive的限制。 SparkSQL支持查询原生的RDD。

1. DataSet     DataSet是分布式的数据集合。DataSet是在Spark1.6中添加的新的接口。它集中了RDD的优点(强类型和可以用强大lambda函数)以及Spark SQL优化的执行引擎。DataSet可以通过JVM的对象进行构建,可以用函数式的转换(map/flatmap/filter)进行多种操作。     DataSet是分布式的数据集合,DataSet提供了强类型支持,也是在RDD的每行数据加了类型约束。

    相比DataFrame,Dataset提供了编译时类型检查,这会节省调试bug的大量的时间,这也是引入Dataset的一个重要原因     Dataset也是一个分布式数据容器,简单来说是类似二维表,Dataset里头存有schema数据结构信息和原生数据,Dataset的底层封装的是RDD,当RDD的泛型是Row类型的时候,我们也可以称它为DataFrame。即Dataset<Row> = DataFrame。 2. DataFrame     DataSet包含了DataFrame的功能,Spark2.0中两者统一,DataFrame表示为DataSet[Row],即DataSet的子集。

3. SparkSql 与Hive的整合     Spark SQL可以通过Hive metastore获取Hive表的元数据     Spark SQL自己也可创建元数据库,并不一定要依赖hive创建元数据库,所以不需要一定启动hive,只要有元数据库,Spark SQL就可以使用。但是如果要像hive一样持久化文件与表的关系就要使用hive,     SparkSQL支持对Hive的读写操作。然而因为Hive有很多依赖包,所以这些依赖包没有包含在默认的Spark包里面。如果Hive依赖的包能在classpath找到,Spark将会自动加载它们。需要注意的是,这些Hive依赖包必须复制到所有的工作节点上,因为它们为了能够访问存储在Hive的数据,会调用Hive的序列化和反序列化(SerDes)包。Hive的配置文件hive-site.xml、core-site.xml(security配置)和hdfs-site.xml(HDFS配置)是保存在conf目录下面。      当使用Hive时,必须初始化一个支持Hive的SparkSession,用户即使没有部署一个Hive的环境仍然可以使用Hive。当没有配置hive-site.xml时,Spark会自动在当前应用目录创建metastore_db和创建由spark.sql.warehouse.dir配置的目录,如果没有配置,默认是当前应用目录下的spark-warehouse目录。

4. Dataset 几种创建方式     读取json格式的文件创建Dataset     通过json格式的RDD创建Dataset     通过非json格式的RDD创建Dataset(反射,动态创建)     读取parquet文件创建Dataset     读取JDBC中的数据创建Dataset     读取hive中的数据加载成Dataset 5. RDD转换DataSet     使用反射机制推断RDD的数据结构         当spark应用可以推断RDD数据结构时,可使用这种方式。这种基于反射的方法可以使代码更简洁有效。

    通过编程接口构造一个数据结构,然后映射到RDD上         当spark应用无法推断RDD数据结构时,可使用这种方式。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档