码迷,mamicode.com
首页 > 数据库 > 详细

06 Spark SQL 及其DataFrame的基本操作

时间:2021-05-24 03:53:49      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:用户   打印   ati   schema   依赖   read   loading   memory   mem   

1.Spark SQL出现的 原因是什么?

随着Spark的发展,对于野心勃勃的Spark团队来说,Shark对于Hive的太多依赖(如采用Hive的语法解析器、查询优化器等等),制约了Spark的One Stack Rule Them All的既定方针,制约了Spark各个组件的相互集成,所以提出了SparkSQL项目。SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage)、Hive兼容性等,重新开发了SparkSQL代码;由于摆脱了对Hive的依赖性,SparkSQL无论在数据兼容、性能优化、组件扩展方面都得到了极大的方便,真可谓“退一步,海阔天空”。

Spark SQL有以下特点

(1)、支持多种数据源:Hive、RDD、Parquet、JSON、JDBC等。

(2)、多种性能优化技术:in-memory columnar storage、byte-code generation、cost model动态评估等。

(3)、组件扩展性:对于SQL的语法解析器、分析器以及优化器,用户都可以自己重新开发,并且动态扩展。

 2.用spark.read 创建DataFrame

回答在下面Spark SQL DataFrame的基本操作代码部分

3.观察从不同类型文件创建DataFrame有什么异同?

 txt文件:创建的DataFrame数据没有结构

json文件:创建的DataFrame数据有结构

4.观察Spark的DataFrame与Python pandas的DataFrame有什么异同?

 

 技术图片

技术图片

技术图片

技术图片

技术图片

 

 

 

 

Spark SQL DataFrame的基本操作

创建:

spark.read.text()

spark.read.json()

打印数据

df.show()默认打印前20条数据,df.show(n)

打印概要

df.printSchema()

技术图片

 

 技术图片

 

 

查询总行数

df.count()

df.head(3) #list类型,list中每个元素是Row类

输出全部行

df.collect() #list类型,list中每个元素是Row类

技术图片

 

 

查询概况

df.describe().show()

技术图片

 

 

取列

df[‘name’]

df.name

df.select()

技术图片

 

 

df.filter()

技术图片

 

 

df.groupBy()

技术图片

 

 

df.sort()

技术图片

 

06 Spark SQL 及其DataFrame的基本操作

标签:用户   打印   ati   schema   依赖   read   loading   memory   mem   

原文地址:https://www.cnblogs.com/lin112358/p/14742009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!