2021年大数据Spark(二十六):SparkSQL数据处理分析

举报
Lansonli 发表于 2021/09/29 00:21:50 2021/09/29
【摘要】 目录 SparkSQL数据处理分析 基于DSL分析 基于SQL分析 第一步、注册为临时视图 第二步、编写SQL,执行分析 ​​​​​​​SparkSQL数据处理分析      在SparkSQL模块中,将结构化数据封装到DataFrame或Dataset集合中后,提供两种...

目录

SparkSQL数据处理分析

基于DSL分析

基于SQL分析

第一步、注册为临时视图

第二步、编写SQL,执行分析


​​​​​​​SparkSQL数据处理分析

     在SparkSQL模块中,将结构化数据封装到DataFrame或Dataset集合中后,提供两种方式分析处理数据,正如前面案例【词频统计WordCount】两种方式:

 第一种:DSL(domain-specific language)编程,调用DataFrame/Dataset API(函数),类似RDD中函数;

 第二种:SQL 编程,将DataFrame/Dataset注册为临时视图或表,编写SQL语句,类似HiveQL;

     两种方式底层转换为RDD操作,包括性能优化完全一致,在实际项目中语句不通的习惯及业务灵活选择。比如机器学习相关特征数据处理,习惯使用DSL编程;比如数据仓库中数据ETL和报表分析,习惯使用SQL编程。无论哪种方式,都是相通的,必须灵活使用掌握。

 

 

 

基于DSL分析

调用DataFrame/Dataset中API(函数)分析数据,其中函数包含RDD中转换函数和类似SQL语句函数,部分截图如下:

 

类似SQL语法函数:调用Dataset中API进行数据分析,Dataset中涵盖很多函数,大致分类如下:

 1、选择函数select:选取某些列的值

 

 

 2、过滤函数filter/where:设置过滤条件,类似SQL中WHERE语句

 

 

 3、分组函数groupBy/rollup/cube:对某些字段分组,在进行聚合统计

 

 

 4、聚合函数agg:通常与分组函数连用,使用一些count、max、sum等聚合函数操作

 

 

 5、排序函数sort/orderBy:按照某写列的值进行排序(升序ASC或者降序DESC)

 

 

 6、限制函数limit:获取前几条数据,类似RDD中take函数

 

 

 7、重命名函数withColumnRenamed:将某列的名称重新命名

 

 

 8、删除函数drop:删除某些列

 

 

 9、增加列函数withColumn:当某列存在时替换值,不存在时添加此列

 

 

上述函数在实际项目中经常使用,尤其数据分析处理的时候,其中要注意,调用函数时,通常指定某个列名称,传递Column对象,通过隐式转换转换字符串String类型为Column对象

 

Dataset/DataFrame中转换函数,类似RDD中Transformation函数,使用差不多:

 

 

​​​​​​​基于SQL分析

将Dataset/DataFrame注册为临时视图,编写SQL执行分析,分为两个步骤:

第一步、注册为临时视图

 

 

第二步、编写SQL,执行分析

 

 

其中SQL语句类似Hive中SQL语句,查看Hive官方文档,SQL查询分析语句语法,官方文档文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select

 

文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。

原文链接:lansonli.blog.csdn.net/article/details/115773473

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。