为了账号安全,请及时绑定邮箱和手机立即绑定
等值连接,不等值连接那里讲的好乱,不够清晰,不理解left join 和right join的人听会听晕的
感谢老师分享,期待更优质资源!
等值连接(连接条件是等号):

```
select e.empno, e.ename, e.sal, d.dname
from emp e,dept d
where e.deptno=d.deptno;
```

不等值连接(连接条件不是等号):

```
select e.empno, e.ename, e.sal, d.dname
from emp e,dept d
where e.deptno between 1 and 10;
```
to_date('2018-6-17'):取出一个字符串中的年月日部分
year('2018-6-17'):取出一个字符串中的年
month('2018-6-17'):取出一个字符串中的月
day('2018-6-17'):取出一个字符串中的日
weekofyear('2018-6-17'):本周是一年中的第几周
datediff('2018-6-17', '2019-6-17'):两个日期相差的天数
date_add('2018-6-17', 2):在一个日期上加上多少天
date_sub('2018-6-17', 2):在一个日期上减去多少天
数学函数:
round(number, n):对number进行四舍五入操作,并保留n位小数
ceil(number):向上取整
floor(number):向下取整

字符函数:
lower(str):把字符串转为小写
upper(str):把字符串转为大写
length(str):字符串的长度
concat(str1, str2):字符串拼接
substr(str, start[, length]):截取子串
trim(str):去掉字符串收尾的空格
lpad(str, length, mark):左填充
rpad(str, length, mark):右填充
在 Hive 中,大部分 HQL 查询语句都会被转换为 MapReduce 作业进行执行,但也有小部分查询不会被转换,如select * from tb_name;,因为 Hive 里的数据是直接存储在 HDFS 中的,当查询所有的信息,只需要把 HDFS 中该表的所有信息读取出来即可,没有必要转换成 MR 作业。MR 作业需要编译和任务下发等一系列操作,所以速度会慢一些。
# Hive 数据查询

查询语法:

SELECT [ALL|DISTINCT] select_expr, select_expr ...
FROM tb_reference
[WHERE where_condition]
[GROUP BY col_list]
[CLUSTER BY col_list
|[DISTRIBUTE BY col_list] [SORT BY col_list]
|[ORDER BY col_list]]
[LIMIT number]

- DISTRIBUTE BY:指定分发器(partitioner),多reduce可用
参数说明:
--connect:指定JDBC数据库连接地址,jdbc:mysql://127.0.0.1:3306/test
--user、--password:指定JDBC数据库连接用户名和密码
--table:指定RDBMS中的表名
-columns:指定导入RDBMS中表的哪些列
-m:指定导入时MR的进程数
--target-dir:指定数据导入到 HDFS 时的目录
--hive-import:数据到 Hive 中
--hive-table:指定数据导入到 Hive 时的表名
--where:使用 where 条件,来过滤一些数据
--query:使用査询语句
注意:最新的稳定版本是1.4.7,Sqoop 依赖于 JDK 和 Hadoop 环境。

在官网下载最新的稳定版本:
wget http://mirrors.shu.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

解压:tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

配置环境变量:
export SQOOP_HOME=/bigdata/sqoop-1.4.7.bin__hadoop-2.6.0
export PATH=$SQOOP_HOME/bin:$PATH
hive2.0之后的版本,打开hive服务器接口的代码是:hive --service hiveserver2。这是个坑。

最新回答 / Max_Cooper
我试了一下,你的这个没问题,你是不是输参数的时候带上了单引号,导致参数的类型成了Text而不是IntWritable。
竟然没人留言,哈哈哈,坐个沙发

最新回答 / weixin_慕慕3242689
以前是通过hivecli连接HiveServer , 缺点是HiveServer 不能处理多个客户端,比如你的HiveServer装在A机器,就必须到A机器上连接访问。所以就出现了HiveServer2,可以在任意机器上使用beeline通过JDBC方式连接。并且beeline不是直接连接的HiveServer2,二十访问的zookeeper,zookeeper中记录着多个HiveServer2地址,就算其中一个HiveServer2挂掉,也不妨碍访问。
https://www.jianshu.com/p/f239356370a2
这是根据老师讲解内容整理的课堂笔记,欢迎大家查看
课程须知
本课程是Hadoop体系结构的扩展内容 1、熟练掌握Hadoop的体系结构,尤其是HDFS 2、熟悉Java编程 3、了解Linux的基本操作 对Hive还不了解的童鞋,最好先去《Hive旅程之初识印象》修炼一下,再回来学习
老师告诉你能学到什么?
1、Hive数据的导入 2、Hive的数据查询 3、Hive的内置函数 4、Hive的表连接 5、Hive的子查询 6、Hive的客户端操作 7、开发Hive的自定义函数

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消