sparkSQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sparkSQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1860字,纯文字阅读大概需要3分钟。
内容图文
![sparkSQL](/upload/InfoBanner/zyjiaocheng/906/aad04b4f20274269a0570957ba0f70fd.jpg)
1.spark SQL简介
Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程对象,叫DataFrame,并且作为分布式SQL查询引擎的作用
2.为什么要学习spark SQL
2.1 我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性
2.2 MapReduce这种计算模型效率慢,代码繁碎,很多开发者都习惯使用sql,所以Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快,而且Spark SQL也支持从Hive中读取数据
3.spark SQL特点
3.1 集成 3.2 同意的访问方式 3.3hive集成 3.4标准连接
4.DataFrame的概念
(1)DataFram是组成命名列的数据集,它在概念上等同于关系数据库中的表,,但在底层具有更丰富的优化
(2)DataFrame可以从各种来源构建,列如:结构化数据文件, hive中的表,外部数据库或现有RDD
(3)DataFrame API支持的语言有Scala,Java,Python和R
(4)从上图可以看出,DataFrame多了数据的结构信息,即schema(创建DataFrame的一种方式,后边详细介绍),RDD是分布式的 Java对象的集合
(5)DataFrame是分布式的Row对象的集合,DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化
val row = lines.map ( _.split ( "," )).map ( tp => Row ( tp ( 0 ).toInt, tp ( 1 ), tp ( 2 ), tp ( 3 ), tp ( 4 ).toDouble, tp ( 5 ).toDouble, tp ( 6 ).toInt ))
val frame: DataFrame = unit.map(tp=>{ val splits=tp.split(" ") val id=splits(0).toInt val name=splits(1) val age=splits(2).toInt val result=splits(3).toInt (id,name,age,result) }).toDF("id","name","age","address")
5.DataSet的概念
(1)Dataset是数据的分布式集合,Dataset是在Spark 1.6中添加的一个新接口,是DataFrame之上更高一级的抽象
(2)Dataset提供了RDD的优点(强类型化,使用强大的lambda函数的能力)以及Spark SQL优化后的执行引擎的优点
(3)一个Dataset 可以从JVM对象构造,然后使用函数转换(map, flatMap,filter等)去操作
(4)Dataset API 支持Scala和Java, Python不支持Dataset API
内容总结
以上是互联网集市为您收集整理的sparkSQL全部内容,希望文章能够帮你解决sparkSQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。