06 Spark SQL 及其DataFrame的基本操作

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

Spark SQL的前身是 Shark,Shark最初是美国加州大学伯克利分校的实验室开发的Spark生态系统的组件之一,它运行在Spark系统之上,Shark重用了Hive的工作机制,并直接继承了Hive的各个组件, Shark将SQL语句的转换从MapReduce作业替换成了Spark作业,虽然这样提高了计算效率,但由于 Shark过于依赖Hive,因此在版本迭代时很难添加新的优化策略,从而限制了Spak的发展,在2014年,伯克利实验室停止了对Shark的维护,转向Spark SQL的开发。

Shark Hive on Spark Hive即作为存储又负责sql的解析优化,Spark负责执行

SparkSQL Spark on Hive Hive只作为储存角色,Spark负责sql解析优化,执行

SparkSQL产生的根本原因是为了完全脱离Hive限制

 

2.用spark.read 创建DataFrame

spark.read.text(file)

06 Spark SQL 及其DataFrame的基本操作

spark.read.json(file)

06 Spark SQL 及其DataFrame的基本操作

 

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

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

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

 

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

06 Spark SQL 及其DataFrame的基本操作

 

Spark SQL DataFrame的基本操作

文件路径:

file='url'

文本:

06 Spark SQL 及其DataFrame的基本操作

json:

06 Spark SQL 及其DataFrame的基本操作

创建:

spark.read.text(file)

06 Spark SQL 及其DataFrame的基本操作

spark.read.json(file)

06 Spark SQL 及其DataFrame的基本操作

打印数据

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

文本:

06 Spark SQL 及其DataFrame的基本操作

 06 Spark SQL 及其DataFrame的基本操作

json:

06 Spark SQL 及其DataFrame的基本操作

打印概要

df.printSchema()

文本:

06 Spark SQL 及其DataFrame的基本操作

 json:

06 Spark SQL 及其DataFrame的基本操作

查询总行数

df.count()

06 Spark SQL 及其DataFrame的基本操作

df.head(3) #list类型,list中每个元素是Row类

文本:

06 Spark SQL 及其DataFrame的基本操作

json:

06 Spark SQL 及其DataFrame的基本操作

输出全部行

df.collect() #list类型,list中每个元素是Row类(文本与json数据差异与上df.head()同)

06 Spark SQL 及其DataFrame的基本操作

查询概况

df.describe().show()

文本:

06 Spark SQL 及其DataFrame的基本操作

json:

06 Spark SQL 及其DataFrame的基本操作

取列(仅json文件可使用以下命令)

df['name']

df.name

06 Spark SQL 及其DataFrame的基本操作

df.select()

06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其DataFrame的基本操作

df.filter()

06 Spark SQL 及其DataFrame的基本操作

06 Spark SQL 及其DataFrame的基本操作

df.groupBy()

06 Spark SQL 及其DataFrame的基本操作

df.sort()

06 Spark SQL 及其DataFrame的基本操作

上一篇:shell编程-数组


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