问题标签 [set-operations]

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.

0 投票
1 回答
33 浏览

pyspark - 在 pyspark 中,如何在 groupby 之后在一列中找到值,而不是在另一列(设置减法)中查找值?

我有一个记录的 pysparkdf数据框,每条记录都有idgroup,并标记是否event1, event2发生了两个事件( )。我想找到每个组中的 id 数,即:

  1. 这两件事都发生在他们身上,
  2. 有 event2 但没有 event1 发生在他们身上。

我在这里提取一个简单的例子:

在上面df,因为group = A有 2 个 id 有 event1:(001,003),3 个 id 有 event2:(001,002,003)。因此,例如,event2 而不是 event1 中的 id 数为 1。

我希望能得到这样的东西。

到目前为止,我已经尝试收集一组为每个事件出现的 id,然后分别在new_df. 但我觉得这很笨拙。例如,

如何在 pyspark 中优雅地实现这一目标?

0 投票
2 回答
123 浏览

sql - 在 SQLite 中进行集合算术的最佳方法

Member-Role 是 N:N 关系。

  • 大约有 15,000 名成员,他们的角色数量不一且可能为零。
  • 大约有 50 个角色。

在数据库之外,我有需要检查数据库的允许-拒绝列表。列表可能看起来像

这表示:

  1. 如果有角色a
    1. 允许
  2. 别的,
    1. 如果有角色b
      1. 否定
    2. 别的,
      1. 如果有角色c
        1. 允许
      2. 别的,
        1. 如果有角色d
          1. 允许
        2. 别的,
          1. 否定

例如,具有角色ad的人将被允许,而具有角色bd的人将被禁止。

通过从末尾开始,对项应用并集 (∪) 对+项应用差 (-),可以轻松地将列表转换为数学方程-

+a -b +c +d⇒ ( ( ( ∅ ∪ d ) ∪ c ) - b ) ∪ a

任何尾随的拒绝 ( -) 都可以忽略,因此我们知道第一个将始终是联合。

+a -b +c +d⇒ ( ( d ∪ c ) - b ) ∪ a

由此,我可以构建以下查询:

由于 x - y = x ∩ y',我们还可以推导出

+a -b +c +d⇒ ( ( d ∪ c ) ∩ b' ) ∪ a

由此,我可以构建以下查询:

检查成员是否被允许的最佳方法是什么?(答案通常是肯定的。)会使用WITH帮助吗?

请注意,允许-拒绝列表的项目可以是角色 ID(数字)或角色名称(不是数字)。

0 投票
1 回答
75 浏览

c++ - 为什么文本文件中的单词在程序中显示的是字母顺序,而不是文本文件的放置顺序?

所以,我的工作主要在这里完成,但我似乎无法弄清楚如何按照文本文件显示的顺序排列单词。它只是从文本文件中获取单词,并按字母顺序排列单词。文本文件位于此页面的底部。

文本文件分析

编写一个程序,读取两个文本文件的内容,并按以下方式进行比较:

• 它应该显示两个文件中包含的所有唯一词的列表。• 它应该显示出现在两个文件中的单词列表。• 它应该显示出现在第一个文件中的单词列表,而不是第二个文件。• 它应该显示出现在第二个文件中的单词列表,而不是第一个文件。• 它应该显示出现在第一个或第二个文件中的单词列表,但不能同时出现在这两个文件中。

提示:使用集合操作来执行这些分析。此外,有关字符串标记化的讨论,请参见第 10 章。

这是我到目前为止所拥有的:

这些是我提到的文本文件中的文字:

//firstTextFile.txt

它应该显示两个文件中包含的所有唯一单词的列表。它应该显示出现在两个文件中的单词列表。它应该显示出现在第一个文件中的单词列表,而不是第二个文件。它应该显示出现在第一个或第二个文件中的单词列表,但不能同时出现在这两个文件中。

//secondTextFile.txt

它应该显示两个文件中包含的所有唯一单词的列表。它应该显示出现在两个文件中的单词列表。它应该显示出现在第二个文件中的单词列表,但不是第一个文件。它应该显示出现在第一个或第二个文件中的单词列表,但不能同时出现在这两个文件中。

它们之间的区别是第三句话。

0 投票
1 回答
47 浏览

python - 在 Python 中计算两个集合的差异和交集的最有效方法

假设我们有两组s1s2

我需要基于这两个集合的三个不同的集合:

  1. 中存在s1但不存在的元素集s2
  2. 中存在s2但不存在的元素集s1
  3. 存在于s1和中的元素集s2

这些可以很容易地计算如下:

有没有办法更有效地计算这些集合?我想不同的集合操作有多个共同的内部处理步骤,因此可能存在冗余。

0 投票
1 回答
35 浏览

amazon-web-services - AWS Athena 是否支持集合操作?

尝试使用 set 操作,但似乎在 Athena 中不起作用。是不支持还是 SQL 有什么问题?

第 3:1 行:输入“SELECT”不匹配。期望:'(',',','CROSS','EXCEPT','FULL','GROUP','HAVING','INNER','INTERSECT','JOIN','LEFT','LIMIT', “自然”、“偏移”、“订单”、“正确”、“表格样本”、“联合”、“在哪里”、

0 投票
0 回答
25 浏览

sql - 这个 SQL 操作可以在不逐行(RBAR)的情况下完成吗?

我有一组任务,其中一些任务比其他任务更重要

在此处输入图像描述

每个任务在一个或多个数据库上做一些工作。

在此处输入图像描述

这些任务分配给将执行任务的工作人员(应用程序中的线程轮询表)。

当工作人员完成任务后,它会将值设置回 null 以表示它可以再次接受工作。

在此处输入图像描述

在将任务分配给工作人员时,我想对可以在任何时候使用的数据库连接数施加上限 - 因此使用当前处于其限制的数据库的任务将不会分配给工人。

在此处输入图像描述

我可以通过从数据库限制中减去当前分配给工作人员的任务数据库来获得可用的数据库连接数。

在此处输入图像描述

我的问题是,如何根据可用的数据库连接数按重要性顺序选择可以运行的任务,而不是逐行执行?

我希望下面的例子能说明我的问题:

在此处输入图像描述

右边是可用的数据库连接,随着我们按重要性顺序向下排列任务列表,它会减少。

如果我按照任务的重要性顺序选择它们,那么可用于下一个任务的连接取决于是否选择了前一个任务,这取决于是否有空间用于所有数据库连接。

在上述情况下,任务 7 只能运行,因为任务 6 不能

任务 8 也无法运行,因为任务 5 使用了与数据库 C 的最后一个连接,因为它是一项更重要的任务。

问题:

有没有办法在不使用while循环并逐行执行的情况下解决这个问题?