7.Spark SQL
2022/6/7 2:20:59
本文主要是介绍7.Spark SQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
未交原因:忘记交了 1.请分析SparkSQL出现的原因,并简述SparkSQL的起源与发展。spark出现的目的是为了替代Mapreduce,解决Mapreduce计算短板。我们知道最初的计算框架叫 mapreduce,他的缺点是计算速度慢,还有一个就是代码比较麻烦,所以有了 hive;hive 是把类 sql 的语句转换成 mapreduce,解决了开发难的问题,但是 hive 的底层还是 mapreduce,仍然是慢;spark 也看到了 hive 的优势,以 hive 为中心的一套框架 shark 营运而生,它是 spark 的前身,h 就是 hive 的意思;但是 为了 提高 shark 的效率,spark 自己开发了一套算法,替代了之前 hive 的思路,这套算法就是 sparkSQL。
2. 简述RDD 和DataFrame的联系与区别?
RDD 和 DataFrame 都是Spark平台对数据的一种抽象,一种组织方式,但是两者的地位或者说设计目的却截然不同。RDD 是整个 Spark 平台的存储、计算以及任务调度的逻辑基础,更具有通用性,适用于各类数据源,而 DataFrame 是只针对结构化数据源的高层数据抽象,其中在 DataFrame 对象的创建过程中必须指定数据集的结构信息( Schema ),所以 DataFrame 生来便是具有专用性的数据抽象,只能读取具有鲜明结构的数据集。
3.DataFrame的创建
spark.read.text(url)
spark.read.format("text").load("people.txt")
4. PySpark-DataFrame各种常用操作
基于df的操作:
打印数据 df.show()默认打印前20条数据
打印概要 df.printSchema()
查询总行数 df.count()
df.head(3) #list类型,list中每个元素是Row类
输出全部行 df.collect() #list类型,list中每个元素是Row类
查询概况 df.describe().show()
取列 df[‘name’], df.name, df[1]
选择 df.select() 每个人的年龄+1
筛选 df.filter() 20岁以上的人员信息
筛选年龄为空的人员信息
分组df.groupBy() 统计每个年龄的人数
排序df.sortBy() 按年龄进行排序
基于spark.sql的操作:
创建临时表虚拟表 df.registerTempTable('people')
spark.sql执行SQL语句 spark.sql('select name from people').show()
5. Pyspark中DataFrame与pandas中DataFrame
分别从文件创建DataFrame
pandas中DataFrame转换为Pyspark中DataFrame、
Pyspark中DataFrame转换为pandas中DataFrame
从创建与操作上,比较两者的异同
6.从RDD转换得到DataFrame
6.1 利用反射机制推断RDD模式
创建RDD sc.textFile(url).map(),读文件,分割数据项
7. DataFrame的保存
这篇关于7.Spark SQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南