Spark SQL结构化数据文件处理

目录

一,Spark SQL概述

1,Spark SQL简介

2,Spark SQL架构 

二,DataFrame概述 

1,DataFrame简介​

2,DataFrame的创建 

(1)数据准备

(2)通过文件直接创建DataFrame 

(3)RDD直接转换为DataFrame ​

3,DataFrame的常用操作 

(1)DSL风格操作

三,Dataset概述 

1,RDD、DataFrame及Dataset的区别

(1)通过SparkSession中的createDataset来创建Dataset

​(2)DataFrame通过“as[ElementType]”方法转换得到Dataset​

四, RDD转换DataFrame​


一,Spark SQL概述

1,Spark SQL简介

Spark SQLSpark用来处理结构化数据的一个模块,它提供了一个编程抽象结构叫做DataFrame数据模型(即带有Schema信息的RDD),Spark SQL作为分布式SQL查询引擎,让用户可以通过SQLDataFrames APIDatasets API三种方式实现结构化数据处理。

2,Spark SQL架构 

Spark SQL架构Hive架构相比,把底层的MapReduce执行引擎更改为Spark,还修改Catalyst优化器Spark SQL快速的计算效率得益于Catalyst优化器。从HiveQL被解析成语法抽象树起,执行计划生成和优化的工作全部交给Spark SQLCatalyst优化器进行负责和管理。

二,DataFrame概述 

1,DataFrame简介

2,DataFrame的创建 

已存在的 RDD 调用 toDF () 方法 转换得到 DataFrame

        通过Spark读取数据源直接创建DataFrame

(1)数据准备

HDFS文件系统中的/spark目录中有一个person.txt文件,内容如下:

(2)通过文件直接创建DataFrame 

(3)RDD直接转换为DataFrame 

3,DataFrame的常用操作 

(1)DSL风格操作

DataFrame提供了一个领域特定语言(DSL)以方便操作结构化数据,下面将针对DSL操作风格,讲解DataFrame

常用操作示例,

1.show():查看DataFrame中的具体内容信息

2.pritSchema0:查看0staFrameSchema信息

3.select():查看DataFmame中造取部分列的数据,

下面演示查看xixiDF对象的name字段数据,具体代码如下所示

三,Dataset概述 

1,RDD、DataFrame及Dataset的区别

RDD数据的表现形式,即序号(1,此时RDD数据没有数据类型元数据信息

DataFrame数据的表现形式,即序号(2,此时DataFrame数据中添加Schema元数据信息(列名和数据类型,如IDString),DataFrame每行类型固定为Row类型,每列的值无法直接访问,只有通过解析才能获取各个字段的值

Dataset数据的表现形式,序号(34,其中序号(3是在RDD每行数据的基础之上,添加一个数据类型valueString)作为Schema元数据信息。而序号(4)每行数据添加People强数据类型,在Dataset[Person]中里存放3个字段和属性,Dataset每行数据类型可自定义,一旦定义后,就具有错误检查机制

(1)通过SparkSession中的createDataset来创建Dataset


(2)DataFrame通过“as[ElementType]”方法转换得到Dataset

四, RDD转换DataFrame

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值