大数据学习路线之hive表的查询

本文详细介绍了大数据环境下使用Hive进行表查询的各种操作,包括JOIN的类型(如LEFT JOIN、LEFT OUTER JOIN、LEFT SEMI JOIN等)、GROUP BY、HAVING、ORDER BY、LIMIT、UNION ALL等,以及子查询的使用,是大数据初学者掌握Hive查询的重要教程。
摘要由CSDN通过智能技术生成

 大数据学习路线之hive表的查询

1.join 查询

1、永远是小结果集驱动大结果集(小表驱动大表,小表放在左表)。 2、尽量不要使用join,但是join是难以避免的。

left join 、 left outer join 、 left semi join(左半开连接,只显示左表信息)

hive在0.8版本以后开始支持left join

left join 和 left outer join 效果差不多

hive的join中的on只能跟等值连接 "=",不能跟< >= <= !=

join:不加where过滤,叫笛卡尔积

inner join : 内连接

outer join :外链接

full outer join : 全外连接,寻找表中所有满足连接(包括where过滤)。

##创建学生测试表

CREATE TABLE student (

id INT,

name string,

sex string,

birth string,

department string,

address string

)

row format delimited fields terminated by ','

;

##从本地加载数据

load data local inpath '/root/Desktop/student.txt' into table student;

##创建学生成绩测试表

CREATE TABLE score (

stu_id INT,

c_name string,

grade string

)

row format delimited fields terminated by ','

;

##从hdfs加载数据

load data inpath '/hive.data/score.txt' into table score;

##创建学生基本信息测试表

create table stuinfo(

id int,

height double,

weight double

)

row format delimited fields terminated by ','

;

##从本地加载数据

load data local inpath '/root/Desktop/stuinfo.txt' into table stuinfo;

1.1 左连接

如果左边有数据,右边没有数据,则左边有数据的记录的对应列返回为空。

##使用左连接查询:student表为驱动表,通过id连接

select

student.name,

score.c_name,

score.grade

from student

left join score

on student.id = score.stu_id

;

1.2 左外连接

如果左边有数据,右边没有数据,则左边有数据的记录的对应列返回为空。

##使用左外连接查询:student表为驱动表,通过id连接

select

student.name,

score.c_name,

score.grade

f

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值