什么是SparkSql

  1. 一句话概括就是Sql底层是rdd编程.

Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块.

  • 结构化数据说白了就是数据库

SparkSql目的是用来替换RDD编程的.SparkSql底层就是RDD.,

  • 因为RDD你也知道,虽然比MapReduce写起来好一些,但是也是不如Sql直接写起来方便的

在内部, Spark SQL 使用这些额外的信息去做一些额外的优化.如果程序员写RDD的话,经验丰富的人写出来的程序可能性能好一些,经验差的人写的RDD编程的话性能就差一些.SparkSql处理性能要比自己写代码性能高..因为你写SQL直接底层就翻译成RDD了.

有多种方式与 Spark SQL 进行交互, 比如: SQL 和 Dataset API. 当计算结果的时候, 使用的是相同的执行引擎, 不依赖你正在使用哪种 API 或者语言.

这种统一也就意味着开发者可以很容易在不同的 API 之间进行切换, 这些 API 提供了最自然的方式来表达给定的转换.

关于Hive,它是将 Hive SQL 转换成 MapReduce 然后提交到集群上执行,大大简化了编写 MapReduc 的程序的复杂性,

由于 MapReduce 这种计算模型执行效率比较慢, 所以 Spark SQL 的应运而生,它是将 Spark SQL 转换成 RDD,然后提交到集群执行,执行效率非常快.

Spark SQL 它提供了2个编程抽象, 类似 Spark Core 中的 RDD
1.DataFrame
2.DataSet

Spark SQL 的特点

1.无缝的整合了 SQL 查询和 Spark 编程.
2.使用相同的方式连接不同的数据源.
3.在已有的仓库上直接运行 SQL 或者 HiveQL
4.通过 JDBC 或者 ODBC 来连接