06 Spark SQL 及其DataFrame的基本操作

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

Spark SQL是Spark中用于结构化数据处理的组件,Spark2.0中我们使用的就是sparkSQL,是后继的全新产品,解除了对Hive的依赖。

对于SQL来说,Spark SQL受众面广和易学易用。使用大数据的手段来进行处理日益增长的数据量Spark SQLS是相对容易也是较为完善的第一选择。Spark SQL自从使用以来不仅接过了shark的接力棒,并且独立于Hive,为spark用户提供高性能的SQL on hadoop的解决方案,他还为spark带来了通用的高效的,多元一体的结构化的数据处理能力。

park SQL能运行SQL以及hive ql的查询,还能运行UDFs、UDAFs以及序列化和反序列化

2.用spark.read 创建DataFrame

创建DataFrame可以使用spark.read操作: spark.read.text('people.txt')。

spark.read.json('people.json')。

spark.read.parquet('people.parquet')。

spark.read.format('text).load('people.txt')。

spark.read.format('json).load('people.json')。

spark.read.format('parquet).load('people.parquet')

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

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

RDD虽然以Person为类型参数,但Spark框架本身不了解 person类的内部结构而DataFrame却提供了详细的结构信息,使得SparkSQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。DataFrame多了数据的结构信息,即schema。RDD是分布式的 。

 

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

 

posted @ 2021-05-10 17:04  吴铨兴  阅读(105)  评论(0编辑  收藏  举报