前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2021年大数据Spark(二十六):SparkSQL数据处理分析

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

作者头像
Lansonli
发布2021-10-09 16:56:55
1.7K0
发布2021-10-09 16:56:55
举报
文章被收录于专栏:Lansonli技术博客Lansonli技术博客

​​​​​​​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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ​​​​​​​SparkSQL数据处理分析
    • 基于DSL分析
      • ​​​​​​​基于SQL分析
        • 第一步、注册为临时视图
        • 第二步、编写SQL,执行分析
    相关产品与服务
    腾讯云 BI
    腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档