微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

 

 

 

 

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()

 

 

 

 

 

 

df.filter()

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐