位置:苏州达内IT培训学校 > 学校动态 > 为什么要学习Spark SQL
我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!
HIVE:简化编写MapReduce的程序的复杂性
Spark SQL转换成RDD:替代MapReduce,提率
Spark1.0版本开始就推出了SparkSQL,较早是叫Shark
1、内存列存储--可以大大优化内存使用效率,减少了内存消耗,避免了gc对大量数据的性能开销
2、字节码生成技术(byte-code generation)--可以使用动态字节码生成技术来优化性能
3、Scala代码的优化
结构化数据是指任何有结构信息的数据。所谓结构信息,就是每条记录共用的已知的字段集合。当数据符合 这样的条件时,Spark SQL 就会使得针对这些数据的读取和查询变得更加简单。具体 来说,Spark SQL 提供了以下功能(见图 9-1)。
(1) Spark SQL 可以从各种结构化数据源(例如 JSON、Hive、Parquet 等)中读取数据。
(2) Spark SQL 不仅支持在 Spark 程序内使用 SQL 语句进行数据查询,也支持从类似商业 智能软件 Tableau 这样的外部工具中通过标准数据库连接器(JDBC/ODBC)连接 Spark SQL 进行查询。
(3) 当在 Spark 程序内使用 Spark SQL 时,Spark SQL 支持 SQL 与常规的 Python/Java/Scala 代码高度整合,包括连接 RDD 与 SQL 表、公开的自定义 SQL 函数接口等。这样一来, 许多工作都更容易实现了。
为了实现这些功能,Spark SQL 提供了一种特殊的 RDD,叫作 SchemaRDD。SchemaRDD 是存放 Row 对象的 RDD,每个 Row 对象代表一行记录。SchemaRDD 还包含记录的结构信 息(即数据字段)。SchemaRDD 看起来和普通的 RDD 很像,但是在内部,SchemaRDD 可 以利用结构信息更加地存储数据。此外,SchemaRDD 还支持 RDD 上所没有的一些新 操作,比如运行 SQL 查询。SchemaRDD 可以从外部数据源创建,也可以从查询结果或普 通 RDD 中创建。
尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1707/news/523471/违者必究! 以上就是苏州达内IT培训学校 小编为您整理 为什么要学习Spark SQL的全部内容。