等值连接(连接条件是等号):
```
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;
```
```
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;
```
2018-06-17
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):在一个日期上减去多少天
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):在一个日期上减去多少天
2018-06-17
数学函数:
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):右填充
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):右填充
2018-06-17
在 Hive 中,大部分 HQL 查询语句都会被转换为 MapReduce 作业进行执行,但也有小部分查询不会被转换,如select * from tb_name;,因为 Hive 里的数据是直接存储在 HDFS 中的,当查询所有的信息,只需要把 HDFS 中该表的所有信息读取出来即可,没有必要转换成 MR 作业。MR 作业需要编译和任务下发等一系列操作,所以速度会慢一些。
2018-06-17
# 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可用
查询语法:
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可用
2018-06-17
参数说明:
--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:使用査询语句
--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:使用査询语句
2018-06-17
注意:最新的稳定版本是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
在官网下载最新的稳定版本:
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
2018-06-17
hive2.0之后的版本,打开hive服务器接口的代码是:hive --service hiveserver2。这是个坑。
2018-05-21
最新回答 / weixin_慕慕3242689
以前是通过hivecli连接HiveServer , 缺点是HiveServer 不能处理多个客户端,比如你的HiveServer装在A机器,就必须到A机器上连接访问。所以就出现了HiveServer2,可以在任意机器上使用beeline通过JDBC方式连接。并且beeline不是直接连接的HiveServer2,二十访问的zookeeper,zookeeper中记录着多个HiveServer2地址,就算其中一个HiveServer2挂掉,也不妨碍访问。
2018-04-16