06 Spark SQL 及其DataFrame的基本操作

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有什么异同?

 

 06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其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的基本操作

 

 06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其DataFrame的基本操作

 

06 Spark SQL 及其DataFrame的基本操作

 

06 Spark SQL 及其DataFrame的基本操作

 

 

df.filter()

06 Spark SQL 及其DataFrame的基本操作

 

06 Spark SQL 及其DataFrame的基本操作

 

06 Spark SQL 及其DataFrame的基本操作

上一篇:06 Spark SQL 及其DataFrame的基本操作


下一篇:06 Spark SQL 及其DataFrame的基本操作