10 期末大作业

 

 

 

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)

spark.read.json(file)

 

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

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

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

 

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

 

Spark SQL DataFrame的基本操作

文件路径:

file='url'

文本:

json:

创建:

spark.read.text(file)

spark.read.json(file)

打印数据

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

文本:

 

json:

打印概要

df.printSchema()

文本:

 json:

查询总行数

df.count()

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

文本:

json:

输出全部行

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

查询概况

df.describe().show()

文本:

json:

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

df['name']

df.name

df.select()

df.filter()

df.groupBy()

df.sort()

 

 

07 从RDD创建DataFrame(忘了交

 

 

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

Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个叫作Data Frame的编程抽象结构数据模型(即带有Schema信息的RDD),Spark SQL作为分布式SQL查询引擎,让用户可以通过SQL、DataFrame API和Dataset API三种方式实现对结构化数据的处理。但无论是哪种API或者是编程语言,都是基于同样的执行引擎,因此可以在不同的API之间随意切换。

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

 

2.用spark.read 创建DataFrame

 

 

 

 

 

 

 

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

 

 

 

3.1 利用反射机制推断RDD模式

  • sc创建RDD
  • 转换成Row元素,列名=值
  • spark.createDataFrame生成df
  • df.show(), df.printSchema()

  

3.2 使用编程方式定义RDD模式

  • 生成“表头”
    • fields = [StructField(field_name, StringType(), True) ,...]
    • schema = StructType(fields)
  • 生成“表中的记录”
    • 创建RDD
    • 转换成Row元素,列名=值
  • 把“表头”和“表中的记录”拼装在一起
    • = spark.createDataFrame(RDD, schema)

 4. DataFrame保存为文件

df.write.json(dir)

预练习:

读 学生课程分数文件chapter4-data01.txt,创建DataFrame。并尝试用DataFrame的操作完成实验三的数据分析要求。

 

 

 

1.选择使用什么数据,有哪些字段,多大数据量。

2.准备分析哪些问题?(8个以上)

3.当前进展。

 

**查漏补缺:

  1. RDD操作当面检查。
  2. Spark SQL操作当面检查。
  3. 没提交成功的作业,链接放在本次作业的最前面,并注明哪次作业、没交原因。
 
posted @ 2021-06-06 22:23  不喜欢穿内裤  阅读(97)  评论(0编辑  收藏  举报