问题标签 [anti-join]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - 从 NOT IN 查询中快速返回结果
我们有一个系统,我们有一个项目集合(> 100 万),还有几个处理它的东西。每个处理器应该只处理每个项目一次,并且处理器有一个层次结构。
我们当前的实现是有一个“已处理”表来跟踪每个处理器已经完成的工作:
我们的查询是这样的(itemsProcessed
上面有相关的索引)——我们使用 NOT IN 来过滤掉当前处理器或其祖先已经处理过的项目:
当处理的表变得非常大时,此查询开始花费很长时间(几秒钟),因为它必须在开始返回第一项之前进行大量过滤(查询计划使用哈希反连接)
我们需要这个查询非常快速地返回前几项——理想情况下返回500 毫秒内的前几项。这意味着它不能迭代items
并过滤掉itemsProcessed
. 所以我们需要一些方法来对items
and的连接做一个否定索引itemsProcessed
(我们已经在 mongo 上完成了这个,但是 oracle 似乎不能做类似的事情)
甲骨文有可能吗?
sql-server - 当连接依赖于第三个表中的数据时,如何在 MSSQL 中反连接
这是我的情况。
我需要做的是从 PayTable 中找到 PayCraftTemplate 中不存在该工艺的所有工艺。作为一种反连接模式,这似乎非常简单,但我似乎无法让数据正确返回。
加入链接如下:
这是我目前的尝试:
这没有返回我期望的数据,我希望 PayTable 的第 3 行只返回而不是我得到第 1,2 行
r - 如何阻止 anti_join 在 R 中反转排序顺序?
我有两组按 AZ 排序的名称。我正在使用 anti_join 过滤掉第二组中存在的任何内容。例子:
结果是反向排序。我尝试添加升序/降序=TRUE,但没有。有没有办法保持排序顺序完整,而不添加另一行,我错过了?
r - 查找出现在表中但不在第二个中的行号
我有两个巨大的数据框,其中一张表包含较少的观察结果。dplyr 的反连接工作完美且快速,但如果可能,我会保留原始行名。任何功能/包都允许以 anti_join 的速度进行此操作?我目前的解决方案
编辑:寻找我不需要添加行号的解决方案。
r - 将 dplyr 函数应用于 30 个数据帧中的一个公共列
我有多达 30 个带有公共 ID 列的数据框。每个 df 中还有其他列,但我只是在这里显示 ID。
我必须将每个这些表中的 ID# 列与库 ID 列进行比较,以确保 ID 号与库中的 ID 号匹配。
目前我使用 dplyr 并做...
每张桌子都一样。它只会返回任何不在库中的 ID 号,我对每个数据表执行相同的命令,但想为我的所有 30 个表运行它。我将所有 DF 都放在一个列表中,但我不确定如何进行 for 循环?申请?任何帮助将不胜感激,因为这推动了我的 R 知识界限。
r - R tidytext stop_words 没有从gutenbergr 下载中始终如一地过滤
这是一个奇怪的谜题。我从古腾堡下载了 2 篇文章——爱丽丝梦游仙境和尤利西斯。停用词从 Alice 身上消失了,但它们仍在 Ulysses 中。即使将 anti_join 替换为过滤器 (!word %in% stop_words$word),此问题仍然存在。
如何从 Ulysses 中获取 stop_words?
谢谢你的帮助!
pyspark-sql - 为什么 left_anti join 在 pyspark 中不能按预期工作?
在数据框中,我试图识别那些在 C2 列中具有值的行,该值在任何其他行的 C1 列中都不存在。我尝试了以下代码:
现在应用 left_anti 连接预计只返回第 4 行,但我也得到第 2 行:
如果我“实现”过滤后的 DF,则结果如预期:
为什么需要这个 .toDF?
apache-spark - Spark Dataframe leftanti 加入失败
我们正在尝试将 Hive 表中的增量发布到 Kafka。有问题的表是 244 MB 的单个分区、单个块文件。我们的集群配置为 256M 的块大小,因此在这种情况下,我们几乎是单个文件的最大值。
每次更新该表时,都会存档一个副本,然后我们运行我们的 delta 进程。
在下面的函数中,我们隔离了不同的连接,并确认内部连接的性能可以接受(大约 3 分钟),但两个反连接数据帧不会完成——我们不断向 Spark 作业投入更多资源,但仍在继续请参阅下面的错误。
这种连接的数据框大小是否有实际限制?
我们看到的错误似乎表明驱动程序正在与执行者失去联系。我们将执行器内存增加到24G,网络超时时间高达900s,心跳间隔高达120s。
稍后在日志中:
我们一直在操作的配置开关(没有成功)是--executor-memory 24G --conf spark.network.timeout=900s --conf spark.executor.heartbeatInterval=120s
sql - oracle 反连接替代方案
我面临一个问题,我必须从表('CHILD')中选择应该具有指向另一个表('PARENT')的外键的行。问题是外键坏了(长话短说,表是分区的,由于某种原因有孤儿),我必须在恢复外键之前清理子表。我想做的是(大致):
这似乎是正确的(从结果来看),但是效率很低:有 1M 个结果,子表包含 100M+ 行。由于我必须删除来自该查询结果的每一行,因此我正在使用分页,但这意味着每次都重复 NOT IN 查询。出于这个原因,我想知道是否有任何方法可以提高查询的性能。我已经尝试加入表格,但我意识到它不会起作用,因为我应该加入child.PARENT_ID = parent.ID
,所以不会有结果。所以问题是:有没有办法重写 NOT IN 查询以提高性能?
r - R:如何根据两列中的值获取缺失的记录
我有两个经度/纬度坐标的大型数据框,CoastalStates_Tax
和,除了有几百万个坐标CoastalStates
之外,它们几乎相同。CoastalStates_Tax
我想弄清楚其中的哪些行CoastalStates_Tax
不在CoastalStates
,但仍然需要能够跟踪缺失行的索引,无论它们在Tax
数据集中的任何位置。
这CoastalStates_Tax
看起来像:
并且CoastalStates
:
我尝试使用 dplyranti_join
函数anti_join(CoastalStates_Tax,CoastalStates,by=c("PROPERTY LEVEL LONGITUDE","PROPERTY LEVEL LATITUDE"))
,但它只给了我 4,635,393 行。
两个数据集之间的行差异为 4,637,029,因此我遗漏了大约 1600 行,但我不知道为什么。我是否在滥用anti_join
,如果是这样,有什么建议可以解决这个问题吗?