HiveQL 连接

HiveQL 连接

HiveQL的Join子句用于基于相关列来合并两个或多个表的数据。HiveQL的各种类型的Join包括: –

  • 内连接
  • 左外连接
  • 右外连接
  • 全外连接

在这里,我们将在以下表的记录上执行Join子句:

HiveQL 连接

HiveQL中的内连接

HiveQL中的内连接用于返回满足连接条件的多个表的行。换句话说,连接条件在每个被连接的表中找到匹配的记录。

HiveQL 连接

在Hive中的内连接示例

在这个示例中,我们使用两个表employee和employee_department。employee表的主键(empid)表示employee_department表的外键(depid)。让我们通过以下步骤执行内连接操作:

  • 选择我们想要创建表的数据库。
hive> use hiveql;

HiveQL 连接

  • 现在,通过使用以下命令创建一个表格:
hive> create table employee(empid int, empname string , state string)
row format delimited
fields terminated by ',' ;

HiveQL 连接

  • 将对应的数据加载到表中。
hive> load data local inpath '/home/codegyani/hive/employee' into table employee;

HiveQL 连接

  • 现在,使用以下命令创建另一个表:
hive> create table employee_department(depid int, department_name string)
row format delimited
fields terminated by ',' ;

HiveQL 连接

  • 将相应的数据加载到表格中.
hive> load data local inpath '/home/codegyani/hive/employee_department' into table employee_department;

HiveQL 连接

  • 现在,使用以下命令执行内连接操作:-
hive>select  e1.empname, e2.department_name from employee e1 join employee_department e2 on e1.empid= e2.depid;

HiveQL 连接

HiveQL中的左外连接

HiveQL的左外连接返回左侧(第一个)表中的所有记录,并且只返回右侧(第二个)表中符合连接条件的记录。

HiveQL 连接

在Hive中使用左外连接的示例

在这个示例中,我们执行左外连接操作。

  • 让我们通过使用以下命令来执行左外连接操作:
hive> select  e1.empname, e2.department_name from employee e1 left outer join employee_department e2 on e1.empid= e2.depid;

HiveQL 连接

HiveQL中的右外连接

HiveQL中的右外连接返回来自右边(第二个)表的所有记录,并且只返回与连接条件匹配的左边(第一个)表的记录。

HiveQL 连接

在Hive中左外连接的示例

在这个示例中,我们执行左外连接操作。

  • 让我们通过使用以下命令执行左外连接操作:
hive> select  e1.empname, e2.department_name from employee e1 right outer join employee_department e2 on e1.empid= e2.depid;

HiveQL 连接

完全外连接

HiveQL的完全外连接返回两个表的所有记录。对于任一表中缺失的记录,它将赋值为Null。

HiveQL 连接

Hive中全外连接的示例

在这个示例中,我们执行全外连接操作。

  • 让我们使用以下命令执行全外连接操作:-
select  e1.empname, e2.department_name from employee e1 full outer join employee_department e2 on e1.empid= e2.depid;

HiveQL 连接

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程