Spark SQL快速入门(进阶)(上)

简介: Spark SQL快速入门(进阶)(上)

0x00 教程内容


  1. 基础环境准备
  2. Spark SQL 基础编程操作
  3. 执行 SQL 语句
  4. 保存 DataFrame 为其他格式
  5. 支持多种数据源

本文的前置教程课程为: Spark SQL快速入门(基础)


0x01 基础环境准备


1. 启动 Spark-Shell
spark-shell



2. 准备数据
vi /home/hadoop-sny/datas/teacher.json


{"name":"shaonaiyi", "age":"30", "height":198}
{"name":"shaonaier", "age":"28", "height":174}
{"name":"shaonaisan", "age":"25", "height":178}
{"name":"shaonaisi", "age":"21", "height":183}
{"name":"shaonaiwu", "age":"32", "height":165}


3. 生成DataFrame

在 spark-shell 中输入如下代码:

import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder().appName("PersonApp").getOrCreate()
import spark.implicits._
val teacherDF = spark.read.json("/home/hadoop-sny/datas/teacher.json")


0x02 Spark SQL 基础编程操作


1. show()
teacherDF.show()


show():显示所有的数据

show(n) :显示前n条数据

show(true): 字段最多显示20个字符,默认为true

show(false): 取消最多显示20个字符的限制

show(n, true):显示前n条并最多显示20个字符


image.png


字段最多显示20个字符的意思是,比如name字段,名称太长,超过了20个字符的话,会显示成 ...,如果不超过则不会。

2. printSchema()

打印数据表的 Schema信息(结构):

teacherDF.printSchema()


image.png


3. 获取指定字段的统计信息
teacherDF.describe("height").show() //其中,Count:记录条数,Mean:平均值,Stddev:样本标准差,Min:最小值,Max:最大值



image.png


4. 获取数据操作

collect():获取所有数据到数组

collectAsList():获取所有数据到List

teacherDF.collect()
teacherDF.collectAsList()


image.png


first(): 获取第一行记录;

head(n):获取前 n 行记录;

take(n): 获取前 n 行数据;

takeAsList(n): 获取前 n 行数据,并以 List 的形式展示。

PS:head与take的结果其实是一样的。


image.png


5. 查询操作

查询名称为 shaonaiyi 或 年龄是30岁的数据:

teacherDF.where("name = 'shaonaiyi' or age = 28").show()



image.png


展示所有的老师名:

teacherDF.select("name").show()


image.png


展示所有的老师名及身高:

teacherDF.select("name", "height").show()


image.png


6. 过滤操作

展示所有年龄为30岁的老师,打印老师的名称与身高:

teacherDF.filter(teacherDF("age").equalTo("30")).select("name", "height").show()


image.png


limit(n)方法获取指定的 DataFrame 的前 n 行记录,得到的是一个新转化生成的 DataFrame 对象。

teacherDF.limit(3).show()


image.png


7. 排序操作

排序操作有两种方法:orderBy()sort()

都是按指定字段排序,默认为升序

desc:降序

asc :升序

teacherDF.orderBy(teacherDF("height").desc).show(false)


image.png

相关文章
|
1天前
|
SQL 存储 分布式计算
spark执行sql的原理是什么
spark执行sql的原理是什么
6 1
|
1天前
|
SQL 分布式计算 数据可视化
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
|
1天前
|
存储 SQL 分布式计算
性能优化:Spark SQL中的谓词下推和列式存储
性能优化:Spark SQL中的谓词下推和列式存储
|
1天前
|
SQL 分布式计算 测试技术
使用UDF扩展Spark SQL
使用UDF扩展Spark SQL
|
1天前
|
SQL 数据采集 分布式计算
Spark SQL中的聚合与窗口函数
Spark SQL中的聚合与窗口函数
|
1天前
|
SQL XML Linux
SQL Server的版本
【5月更文挑战第14天】SQL Server的版本
17 3
|
1天前
|
SQL 存储 数据库连接
LabVIEW与SQL Server 2919 Express通讯
LabVIEW与SQL Server 2919 Express通讯
|
1天前
|
SQL Windows
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
14 4
|
1天前
|
SQL 数据可视化 Oracle
这篇文章教会你:从 SQL Server 移植到 DM(上)
这篇文章教会你:从 SQL Server 移植到 DM(上)
|
1天前
|
SQL 关系型数据库 数据库
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通