脚本宝典收集整理的这篇文章主要介绍了7.Spark SQL,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
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全部内容,希望文章能够帮你解决7.Spark SQL所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。