模拟数据

数据一:

1
2
3

数据二:

1
2

需求:
数据一中不包含数据二的数据

代码

object JoinTest {def main(args: Array[String]): Unit = {import org.apache.spark.sql.SparkSessionimport org.apache.log4j.{Level, Logger}Logger.getLogger("org").setLevel(Level.ERROR)val spark = SparkSession.builder.appName(this.getClass.getSimpleName).master(master = "local[*]").getOrCreate()import spark.implicits._import spark.sqlspark.read.textFile(path = "./data/t1").toDF("id").createTempView(viewName = "view1")spark.read.textFile(path = "./data/t2").toDF("id").createTempView(viewName = "view2")val start_time1 = System.currentTimeMillis()sql(sqlText = "select * from view1 where id not in (select id from view2)").show()val end_time1 = System.currentTimeMillis()println("方法一耗时:" + (end_time1 - start_time1))val start_time2 = System.currentTimeMillis()sql(sqlText = "select view1.id from view1 left outer join view2 on view1.id = view2.id where view2.id is null").show()val end_time2 = System.currentTimeMillis()println("方法二耗时:" + (end_time2 - start_time2))val start_time3 = System.currentTimeMillis()sql(sqlText = "select * from view1").join(sql(sqlText = "select * from view2"),$"view1.id" === $"view2.id", joinType = "left_outer").where("view2.id is null").select("view1.id").show()val end_time3 = System.currentTimeMillis()println("方法三耗时:" + (end_time3 - start_time3))spark.stop()}
}

结果

+---+
| id|
+---+
|  3|
+---+方法一耗时:1309
+---+
| id|
+---+
|  3|
+---+方法二耗时:248
+---+
| id|
+---+
|  3|
+---+方法三耗时:139

解释

再次说明大数据中方法一是禁止使用,原因之前说过。
方法二采用的纯sql的形式,二方法三采用的是DSL表达式,可以看的出来DSL表达式性能略高于纯sql

单个字段中根据条件剔除数据相关推荐

  1. 向内存中连续存入数据_实例35_在Excel中按条件筛选数据并存入新的表

    老板想要看去年每月领料数量大于1000的数据.手动筛选并复制粘贴出来,需要重复操作12次,实在太麻烦了,还是让Python来做吧.磨刀不误砍柴工,先整理一下思路: 1. 读取原表,将数量大于1000的 ...

  2. pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe)

    pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe) ...

  3. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) 1 ...

  4. 在Excel中按条件筛选数据并存入新的表

    案例 老板想要看去年每月领料数量大于1000的数据.手动筛选并复制粘贴出来,需要重复操作12次,实在太麻烦了,还是让Python来做吧.磨刀不误砍柴工,先整理一下思路: 1·读取原表,将数量大于100 ...

  5. sql 两张表的相同字段中刷选出不同数据

    我们在业务逻辑中,经常会涉及两张表之间的数据比较, 其中涉及到某张表中独一份的数据,如下 1 两张表中相同字段name , 查询出在表a存在而表b中不存在的数据,并去重 方法一: SELECT DIS ...

  6. asp.net怎么实现按条件查询_用这个提取函数王中王,制作数据查询表

    当Excel表的数据太多时,需要进行数据的查询与提取,往往要使用查找与引用函数.提取条件简单还好说,一复杂起来,就要使用又长又头疼的嵌套函数,不要说用了,光看懂函数都要死一片脑细胞. 别伤脑筋了,为什 ...

  7. 在列表,字典,集合中根据条件来筛选数据

    在列表中根据条件来筛选数据 from random import randintdata = [randint(-10,10) for _ in range(10)] print(data) prin ...

  8. 创建了一个表之后怎么再次在表中添加字段和字段显示位置_筛选数据透视表中的数据...

    [推荐阅读]资料下载QQ群:562718785(软件下载.精美PPT模板下载) [Excel视频教学]求和及快速求和 [Excel视频教学]跨表快速求和 [Excel视频教学]函数-相对绝对混合引用 ...

  9. hbase shell查询表中某字段不为空的数据量_HBase工作原理

    HBASE原理 一.原理 1.物理存储 1.hregion hbase表中的数据按照行键的字典顺序排序,hbase表中的数据按照行的的方向切分为多个region. 最开始只有一个region随着数据量 ...

最新文章

  1. 2021-08-30 centos连接WiFi方法
  2. vue人力管理_Vue管理后台框架选择推荐(收藏)
  3. 《C++ Primer Plus(第六版)》(13)(第九章 内存模型和命名空间 笔记)
  4. framework 2.0 新增的一个string.split()方法重载
  5. 浅谈人工智能时代下的工程伦理问题
  6. 君澜酒店集团与来也股份合作,打造国内“冰雪度假打卡圣地”
  7. 应用wms仓库管理系统,提高第三方物流企业竞争力
  8. 自动脚本 android,安卓自动脚本软件下载-自动脚本 安卓版v2.0.3-PC6安卓网
  9. wordpress电商独立站模板
  10. python自动填写网页数据并提交_python实现问卷星网站的自动填写
  11. matlab求函数偏导
  12. SiamRPN++简述
  13. 如何把微信公众号平台做成找券机器人并自动回复优惠券
  14. 1.1.1 操作系统的层次结构、基本概念、功能和目标
  15. 有些人二十几岁就提前退休了,凭什么?
  16. 讲给后台程序员看的前端系列教程(19)——CSS的层叠性与继承性以及优先级
  17. 致敬钢铁侠!!!!!
  18. Facebook POP 进阶指南
  19. drl 规则语言 语法_C语言基本语法规则
  20. BeautifulSoup使用

热门文章

  1. 关于JavaScript的43道题①
  2. js中将html文档写入静态界面当中
  3. C#解析json和xml数据
  4. 【SSL Certificates】什么是数字证书(Certificates)?
  5. Python开发环境Linux配置
  6. 学习swift从青铜到王者之Swift控制语句04
  7. 关于spring+springMVC+myBatis的一些基础配置以及整合
  8. LightOJ 1038-Race to 1 Again(概率dp)
  9. JAMA:Java矩阵包
  10. 【leetcode】Merge Sorted Array