本文概述
- 内部join HiveQL
- Hive内部联接示例
- HiveQL中的左外连接
- 正确join HiveQL
- 完全外部join
- 内部联接
- 左外连接
- 右外连接
- 完全外部join
文章图片
文章图片
内部join HiveQL HiveQL内部联接用于返回联接条件满足的多个表的行。换句话说, 连接条件在每个要连接的表中找到匹配记录。
文章图片
Hive内部联接示例 【HiveQL-join用法】在此示例中, 我们使用两个表employee和employee_department。雇员表的主键(empid)代表雇员部门表的外键(depid)。让我们通过以下步骤执行内部联接操作:-
- 选择我们要在其中创建表的数据库。
hive>
use hiveql;
文章图片
- 现在, 使用以下命令创建表:
hive>
create table employee(empid int, empname string , state string)
row format delimited
fields terminated by ', ' ;
文章图片
- 将相应的数据加载到表中。
hive>
load data local inpath '/home/codegyani/hive/employee' into table employee;
文章图片
- 现在, 使用以下命令创建另一个表:
hive>
create table employee_department(depid int, department_name string)
row format delimited
fields terminated by ', ' ;
文章图片
- 将相应的数据加载到表中。
hive>
load data local inpath '/home/codegyani/hive/employee_department' into table employee_department;
文章图片
- 现在, 使用以下命令执行内部联接操作:-
hive>
selecte1.empname, e2.department_name from employee e1 join employee_department e2 on e1.empid= e2.depid;
文章图片
文章图片
文章图片
HiveQL中的左外连接 HiveQL左外部联接返回左(第一个)表中的所有记录, 仅返回右(第二个)表中的联接条件在其中找到匹配项的记录。
文章图片
Hive中的左外连接示例
在此示例中, 我们执行左外部联接操作。
- 我们使用以下命令执行左外部联接操作:-
hive>
selecte1.empname, e2.department_name from employee e1 left outer join employee_department e2 on e1.empid= e2.depid;
文章图片
文章图片
文章图片
正确join HiveQL HiveQL右外部联接返回右(第二个)表中的所有记录, 并且仅返回左(第一个)表中的联接条件在其中找到匹配项的记录。
文章图片
Hive中的左外连接示例
在此示例中, 我们执行左外部联接操作。
- 让我们使用以下命令执行左外部联接操作:-
hive>
selecte1.empname, e2.department_name from employee e1 right outer join employee_department e2 on e1.empid= e2.depid;
文章图片
文章图片
文章图片
完全外部join HiveQL完全外部联接返回两个表中的所有记录。它为任一表中的丢失记录分配Null。
文章图片
Hive中完全外部联接的示例
在此示例中, 我们执行完整的外部联接操作。
- 让我们使用以下命令执行完整的外部联接操作:-
selecte1.empname, e2.department_name from employee e1 full outer join employee_department e2 on e1.empid= e2.depid;
文章图片
文章图片
文章图片
推荐阅读
- .app/Info.plist Print: Entry, ":CFBundleIdentifier", Does Not Exist
- HiveQL-GROUP BY和HAVING子句
- HiveQL-函数
- Hive-加载数据
- Apache Hive安装
- Hive-放置表
- Hive-放置数据库
- HIVE数据类型
- Hive-创建表