Spark-SQL(总结)
了解到Spark SQL是Spark用于结构化数据处理的模块,其前身是Shark。Shark基于Hive开发,但对Hive的依赖制约了Spark的发展。掌握了 Spark - SQL 的特点,如易整合、统一数据访问、兼容 Hive 以及支持标准数据连接,可处理多种数据源的数据。
对于编程方面,学会使用 SparkSession 作为 SQL 查询的入口,它封装了 SparkContext 并整合了 SQLContext 和 HiveContext 的功能。掌握了 DataFrame 的创建方式(从数据源、RDD 转换或 Hive Table 查询)、查询语法(SQL 和 DSL)以及与 RDD 的相互转换方法。了解了 DataSet 的创建和与 RDD、DataFrame 的转换,以及三者之间的区别和联系。学会编写自定义函数,包括 UDF 和 UDAF,以满足特定的数据处理需求。
对于数据处理与存储方面,掌握了通用的数据加载和保存方式,默认格式为 parquet,可通过spark.read.load
和df.write.save
结合format
、option
处理不同格式数据。熟悉了 Parquet、JSON、CSV、MySQL 等数据格式的加载与保存特点及操作方法。
对于与Hive集成方面,学习了 Spark SQL 连接 Hive 的多种方式,如内嵌 Hive、外部 Hive、Spark beeline、Spark - SQL CLI 以及代码操作。明确了不同连接方式的使用场景和操作要点,如拷贝配置文件、导入依赖等。
本次课程Spark-SQL 展开,学习到其概念、核心编程、数据加载与保存、数据处理及与Hive集成与 Hive 的连接等多方面内容,帮助学习者全面掌握Spark-SQL技术。
学习到许多的程序,像是SparkSession 创建、 DataFrame 操作、DataSet 操作、自定义函数、数据加载与保存、 连接 Hive、词频统计、城市出现次数最多的等等
一、Spark - SQL 基础认知
了解到 Spark - SQL 是 Spark 用于结构化数据处理的关键模块。由于 Shark 对 Hive 的依赖限制了发展,Spark - SQL 应运而生,具备易整合、统一数据访问、兼容 Hive、支持标准数据连接等特性,能处理多种数据源的数据。
二、核心编程抽象
- DataFrame
- 掌握了其创建方式,可从 Spark 数据源、现有 RDD 或 Hive Table 构建。
- 学会运用 SQL 语法和 DSL 语法进行查询操作。
- 熟悉了 DataFrame 与 RDD 的相互转换,借助样例类能更便捷地实现转换。
- DataSet
- 明确了 DataSet 是分布式数据集合,具有强类型的特点。
- 学会使用样例类序列或基本类型序列创建 DataSet。
- 掌握了 DataSet 与 RDD、DataFrame 之间的相互转换方法。
- 对比了 RDD、DataFrame 和 DataSet 的异同,理解它们在使用场景上的差异。
三、自定义函数编写
- UDF(用户自定义函数):学会注册 UDF 并在 SQL 语句中运用,以满足特定的数据处理需求。
- UDAF(用户自定义聚合函数):了解在 Spark 3.0 前后不同的实现方式,掌握使用
Aggregator
实现强类型聚合函数,如计算平均工资等功能。
四、数据加载与保存
- 通用方式:掌握了通用的数据加载和保存方式,默认格式为 parquet,学会使用
spark.read.load
和df.write.save
,并结合format
、option
等方法处理不同格式数据。 - 特定格式:熟悉了 Parquet、JSON、CSV、MySQL 等数据格式的加载与保存特点及操作方法。
五、与 Hive 连接
- 连接方式:学习了 Spark SQL 连接 Hive 的多种方式,包括内嵌 Hive、外部 Hive、Spark beeline、Spark - SQL CLI 以及代码操作。
- 操作要点:明确不同连接方式的使用场景和操作要点,如拷贝相关配置文件、导入依赖等。