06 Spark SQL 及其DataFrame的基本操作

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

hive是shark的前身,shark是sparkSQL的前身,sparkSQL产生的根本原因是其完全脱离了hive的限制,hive是hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序复杂性。同时也由于MapReduce的计算执行效率很慢,因此spark SQL就这样出来,就是将spark SQL转换成RDD,然后提交到集群上执行,这样效率就非常快。

2.用spark.read 创建DataFrame

 

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

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

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

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

pandas的DataFrame 是一种表格型数据结构,按照列结构存储,它含有一组有序的列,每列可以是不同的值,但每一列只能有一种数据类型。拥有丰富、灵活、操作简单的 api,在数据量不大的情况下有较好的效果。Spark的DataFrame 是基于 RDD 的一种数据类型,具有比 RDD 节省空间和更高运算效率的优点,对于大数据量的运算,分布式计算能突破 pandas 的瓶颈,而 Spark 则是分布式计算的典型代表。

 

Spark SQL DataFrame的基本操作

创建:

spark.read.text()

 

 

打印数据

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

打印概要

df.printSchema()

 

 

spark.read.json()

 

打印数据

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

打印概要

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.select(df.name).show()

 

 

df.filter()

df.filter(df.age>20).show()

 

 

df.groupBy()

df.groupBy('age').count().show()

 

 

df.sort()

df.sort(df.age.desc()).show()

 

posted @ 2021-05-09 16:54  牛逼赛亚人  阅读(62)  评论(0编辑  收藏  举报