什么是Spark SQL, Spark SQL优势 18 柔光的暖阳◎ 2021-11-23 02:22 541阅读 0赞 # 1. Spark SQL的前世今生 # * Shark是一个为Spark设计的大规模数据仓库系统, 它与Hive兼容. Shark建立在Hive的代码基础上, 并通过将Hive的部分物理执行计划交换出来. * 这个方法使得Shark的用户可以加速Hive的查询, 但是Shark继承了Hive的大且复杂的代码, 使得Shark很难优化和维护, 同时Shark依赖于Spark的版本. * 随着我们遇到了性能优化的上限, 以及集成SQL的一些复杂的分析功能, 我们发现Hive的MapReduce设计的框架限制了Shark的发展. * 在2014年7月1日的Spark Summit上, Databricks宣布终止对Shark的开发, 将重点放到SparkSql上. # 2. 什么是Spark SQL # ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70] * SparkSql是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做**DataFrame**, SparkSql是分布式SQL查询引擎. * 相比Spark RDD API, SparkSql包含了对结构化数据和在其上运算的更多信息, SparkSql使用这些信息进行了额外的优化, 使对结构化数据的操作更加高效和方便. * 有更多方式去使用**SparkSql**, 包括**SQL, DataFrames API** # 3. Spark SQL优势和特点 # * 我们已经学习了Hive, 它是将**Hive Sql**转换为**MapReduce**然后提交到集群中执行, 大大简化了编写MR程序的复杂性. * **Spark SQL**是将**Spark SQL**转换为**RDD**, 然后提交到集群中去运行,执行效率非常快. **Spark SQL有如下特点:** 1. 易整合 ![在这里插入图片描述][20190725184906583.png] 将sql查询与Spark程序无缝混合, 可以使用java, scala, python, R等语言的API操作. 2. 统一的数据访问 ![在这里插入图片描述][20190725185030669.png] 以相同的方式连接到任何数据源. 3. 兼容Hive![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 1] 支持HiveSql的语法 4. 标准的数据连接 ![在这里插入图片描述][20190725185202481.png] 可以使用行业标准的**JDBC**或**ODBC**连接. [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70]: /images/20211122/5971dacdf3e74111bd3f2370364fd854.png [20190725184906583.png]: /images/20211122/fd884b928c884d1983c12a2ac96b4033.png [20190725185030669.png]: /images/20211122/c236cf61a177487a94621debc8b29c10.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjY0MTkwOQ_size_16_color_FFFFFF_t_70 1]: /images/20211122/072bc923addb4fba85a226cd500aacc4.png [20190725185202481.png]: /images/20211122/6ab6469735a240af8d7382f1bde0fd0f.png
还没有评论,来说两句吧...