在Spark中,我们可以使用类似于传统数据库中的集合操作符来操作数据集。以下是一些常用的集合操作符:

1. 并集操作:

  • UNION:返回两个数据集的所有行,并去除重复行。
  • UNION ALL:返回两个数据集的所有行,包括重复行。

示例:

-- 创建一个只包含20号部门员工信息的表
CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20; 

-- 使用UNION操作符
SELECT * FROM emp UNION SELECT * FROM emp20; 
-- 使用UNION ALL操作符
SELECT * FROM emp UNION ALL SELECT * FROM emp20; 

2. 交集操作:

  • INTERSECT:返回两个数据集中都存在的行。

示例:

SELECT * FROM emp INTERSECT SELECT * FROM emp20; 

3. 差集操作:

  • MINUS:返回第一个数据集中存在而第二个数据集中不存在的行。请注意,MINUS操作符对操作顺序敏感。

示例:

SELECT * FROM emp MINUS SELECT * FROM emp20;