06 Spark SQL 及其DataFrame的基本操作
1.Spark SQL出现的 原因是什么?
关系数据库已经流行多年,能较好的满足各类商业公司的业务数据管理需求,但关系数据库在大数据时代已经不能满足各种新增的用户需求。用户需要从不同数据源执行各种操作(包括结构化和非结构化数据),也需要执行高级分析(在实际大数据应用中,经常需要融合关系查询和复杂分析算法)。
Spark SQL的出现,填补了这个鸿沟。首先,Spark SQL可以对内部和外部各种数据源执行各种关系操作;其次,可以支持大量的数据源和数据分析算法,有效地满足各种复杂的应用需求。
2.用spark.read 创建DataFrame
(1)从文件创建spark.read
(2)从RDD创建
3.观察从不同类型文件创建DataFrame有什么异同?
(1)共同点:在创建Data Frame时,都可以使用spark.read操作,实现从不同类型的文件中加载数据创建DataFrame。
(2)不同点:
a. spark.read.text("people.txt"):读取文本文件people.txt
b. spark.read.json("people.json"):读取JSON文件
c. spark.read.parquet("people.parquet"):读取Parquet文件
4.观察Spark的DataFrame与Python pandas的DataFrame有什么异同?
Pandas中DataFrame是可变的,而Spark中RDDs是不可变的,因此DataFrame也是不可变的。
Spark SQL DataFrame的基本操作
1.创建:
spark.read.text()
spark.read.json()
2.打印数据
df.show()默认打印前20条数据,df.show(n)
3.打印概要
df.printSchema()
4.查询总行数
df.count()
df.head(3) #list类型,list中每个元素是Row类
5.输出全部行
df.collect() #list类型,list中每个元素是Row类
6.查询概况
df.describe().show()
7.取列
df[‘name’]
df.name
df.select()
df.filter()
df.groupBy()
df.sort()