Spark学习笔记:SparkSQL

本文深入探讨SparkSQL,介绍其作为Spark模块处理结构化数据的功能,以及DataFrame的概念、创建与操作,包括DSL和SQL语句。同时,详细阐述了临时视图的原理、类型和使用方法。
摘要由CSDN通过智能技术生成

目录

 

SparkSQL

一、什么是SparkSQL?

二、Spark SQL的特点

DataFrame

一、什么是DataFrame?

二、创建DataFrame

三、使用DSL语句和SQL语句操作DataFrame

1、DSL语句

2、SQL

四、临时视图(Temporary View)

1、什么是视图?

2、类型

3.创建与使用视图

数据集(DataSet)

创建和使用DataSet


SparkSQL

一、什么是SparkSQL?

Spark SQL是Spark的一个模块,用于处理结构化的数据,它提供了一个数据抽象DataFrame并且作为分布式SQL查询引擎的作用。
Spark SQL就是将SQL转换成一个任务,提交到集群上运行,类似于Hive的执行方式。

二、Spark SQL的特点

1.Spark SQL已经集成在Spark中
2.提供了统一的数据访问方式:JSON、CSV、JDBC、Parquet等都是使用统一的方式进行访问
3.兼容Hive
4.支持标准的数据连接:JDBC、ODBC

DataFrame

一、什么是DataFrame?

DataFrame是组织成命名列的数据集。它在概念上等同于关系数据库中的表,但在底层具有更丰富的优化。关系型数据库中的表由表结构和数据组成,而DataFrame也类似,由schema(结构)和数据组成,其数据集是RDD。DataFrame可以从各种来源构建,如结构化的数据文件(csv)、Hive中的数据、外部数据库或者现有的RDD。DataFrame API支持的语言有Java、Scala、Python和R。

二、创建DataFrame

创建DataFrame有三种方法:使用样本类,使用SparkSession以及通过带有格式的数据文件(JSON)来创建

测试数据
员工表 字段说明
部门编号  empno:Int,
员工名 ename:String,
职位 job:String,
经理 mgr:String,
入职日期 hiredate:String,
工资 sal:Int,
奖金 comm:String,
部门编号 deptno:Int

1.使用样本类创建DataFrame
(1)创建一个样本类用来存储员工表的结构
case class Emp(empno:Int,ename:String,job:String,mgr:String,hiredate:String,sal:Int,comm:String,deptno:Int)
(2)通过sc导入emp.csv,并且根据分隔符来做切分
val line=sc.textFile("hdfs://centos:9000/emp.csv").map(_.split(","))
(3)将数据和表结构关联起来
val emp=line.map(x=>Emp(x(0).toInt,x(1),x(2),x(3),x(4),x(5).toInt,x(6),x(7).toInt))
(4)根据上面通过样本类实例化的对象生成DataFrame
val empDF =emp.toDF
(5)然后就可以通过命令来对表内容和表结构进行查看了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值