您的位置:首页 > 大数据

大数据-第11章 spark-SQL 概况

2020-08-07 23:07 603 查看

1.shark
答:
hive on spark ,是为了实现与hive兼容,Shark在hiveQL方面重用了hive中hiveQL解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MapReduce作用替换成了spark作业,通过hive的hiveQL解析,把hiveQL翻译成spark上的RDD操作。
2.shark面临的问题
答:
①一些执行优化完全依赖于hive,不方便添加新的优化策略;
②spark是线程级并行,而MapReduce是进程级并行,因此spark在兼容hive的实现上存在线程安全问题。
3.spark SQL
答:
spark SQL在hive兼容层面仅依赖于hiveQL解析、hive元数据,也就是说,从HQL被解析成抽象语法树起,就全部由spark SQL接管了,spark SQL执行计划生成和优化都有catalyst(函数式关系查询优化框架)负责。
4.DataFrame
答:
spark SQL 增加了dataframe(即带有schema信息的RDD),使用户可以在spark SQL中执行SQL语句,数据即可以来自RDD,也可以是hive、HDFS、Cassandra等外部数据源,还可以是json格式的数据。
5.spark SQL 优势
答:
①可以提供DateFrame API,可以对内部和外部各种数据源执行各种关系操作;
②可以支持大量的数据源和数据分析算法;
③spark SQL可以融合传统关系数据库的结构化数据管理能力和机器学习算法的数据处理能力。
6. DateFrame与RDD区别
答:
①dataframe的推出,让spark具备了处理大规模结构化数据的能力,不仅比原有的RDD转化方式更加简单易用,而且获得了更高的计算性能;
②spark能够轻松实现mysql到dataframe的转化,并且支持SQL查询;③RDD是分布式的java对象集合,但是对象内部结构对于RDD而言却是不可知的;
④dataframe是一种以RDD为基础的分布式数据集,提供了详细的结构信息。
7.dataframe创建
答:
sparksession支持从不同的数据源加载数据,并把数据转换成dataframe,并且支持把dataframe转换成SQLcontext自身中的表,然后使用SQL语句来操作数据,sparksession亦提供了hiveQL以及其他依赖于hive的功能的支持。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: