加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长资讯 > 评论 > 正文

SQL、Pandas和Spark

发布时间:2021-04-19 13:47:53 所属栏目:评论 来源:互联网
导读:ect:指定查询字段 distinct:对查询结果字段进行去重 from:明确查询的数据库和表 join on:指定查询数据源自多表连接及条件 where:设置查询结果过滤条件 group by:设置分组聚合统计的字段 having:依据聚合统计后的字段进一步过滤 order by:设置返回结
  • ect:指定查询字段
  • distinct:对查询结果字段进行去重
  • from:明确查询的数据库和表
  • join on:指定查询数据源自多表连接及条件
  • where:设置查询结果过滤条件
  • group by:设置分组聚合统计的字段
  • having:依据聚合统计后的字段进一步过滤
  • order by:设置返回结果排序依据
  • limit:限定返回结果条数

这是一条SQL查询语句中所能涉及的主要关键字,经过解析器和优化器之后,最后的执行过程则又与之差别很大,执行顺序如下:

  • from:首先找到待查询的表
  • join on:如果目标数据表不止一个,则对多表建立连接关系
  • where:根据查询条件过滤数据记录
  • group by:对过滤结果进行分组聚合
  • having:对分组聚合结果进行二次过滤
  • select:对二次过滤结果抽取目标字段
  • distinct:根据条件进行去重处理
  • order by:对去重结果进行排序
  • limit:仅返回排序后的指定条数记录

曾经,个人一度好奇为何不将SQL语句的书写顺序调整为与执行顺序一致,那样更易于理解其中的一些技术原理,但查询资料未果后,就放弃了……

当然,本文的目的不是介绍SQL查询的执行原理或者优化技巧,而仅仅是对标SQL查询的几个关键字,重点讲解在Pandas和Spark中的实现。

02 Pandas和Spark实现SQL对应操作

以下按照SQL执行顺序讲解SQL各关键字在Pandas和Spark中的实现,其中Pandas是Python中的数据分析工具包,而Spark作为集Java、Scala、Python和R四种语言的通用分布式计算框架,本文默认以Scala语言进行讲述。

1)from。由于Python和Scala均为面向对象设计语言,所以Pandas和Spark中无需from,执行df.xxx操作的过程本身就蕴含着from的含义。

2)join on。join on在SQL多表查询中是很重要的一类操作,常用的连接方式有inner join、left join、right join、outer join以及cross join五种,在Pandas和Spark中也都有相应关键字。

Pandas:Pandas实现join操作有两个主要的API:merge和join。其中merge是Pandas的顶层接口(即可直接调用pd.merge方法),也是DataFrame的API,支持丰富的参数设置,主要介绍如下:

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读