-
Hive的Lode语句的使用
查看全部 -
hive的表生成函数
explode
select explode(map(1,'tom',2,'marry',3,'mike'));
1 tom
2 marry
3 mike
查看全部 -
hive的收集函数
size(map(<key,value>,<key,value>))
select size(map(1,'tom',2,'mary'))
2
hive的转换函数
cast
select cast(1 as bigint);
1
select cast(1 as float);
1.0
select cast('2015-04-10' as date);
2015-04-10
查看全部 -
hive字符函数
lpad:左填充
rpad:右填充
select lpad('abcd',10,'*')
******abcd
select rpad('abcd',10,'*')
abcd******
查看全部 -
hive内置函数
查看全部 -
hive中order by使用字段序号排序配置参数
set hive.groupby.orderby.position.alias=true;
查看全部 -
hive的HQL语言区分字符串的大小写
模糊查询:查询名字含有下划线的员工
select empno,ename,sal from emp where ename like '%\\_%'
查看全部 -
简单查询使用 Fetch Task功能 不生成MapReduce任务
配置方式
set hive.fetch.task.conversion=more;
hive --hiveconf hive.fetch.task.conversion=more
修改hive-site.xml文件
<configuration> <property> <name>hive.fetch.task.conversion</name> <value>more</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.56.101:3306/hive</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> <property> <name>hive.hwi.listen.host</name> <value>0.0.0.0</value> <description>This is the host address the Hive Web Interface will listen on</description> </property> <property> <name>hive.hwi.listen.port</name> <value>9999</value> <description>This is the port the Hive Web Interface will listen on</description> </property> <property> <name>hive.hwi.war.file</name> <value>${HIVE_HOME}/lib/hive-hwi-<version>.war</value> <description>This is the WAR file with the jsp content for Hive Web Interface</description> </property> </configuration>
<configuration>
<property>
<name>hive.fetch.task.conversion</name>
<value>more</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.56.101:3306/hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<property>
<name>hive.hwi.listen.host</name>
<value>0.0.0.0</value>
<description>This is the host address the Hive Web Interface will listen on</description>
</property>
<property>
<name>hive.hwi.listen.port</name>
<value>9999</value>
<description>This is the port the Hive Web Interface will listen on</description>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>${HIVE_HOME}/lib/hive-hwi-<version>.war</value>
<description>This is the WAR file with the jsp content for Hive Web Interface</description>
</property>
</configuration>
查看全部 -
sqoop进行数据导入
使用sqoop导入oracle数据到hdfs中
./sqoop import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username scott --password tiger --table emp --columns 'empno,ename,job,sal,deptno' -m 1 --target-dir '/sqoop/emp'
使用sqoop导入Oracle数据到hive中
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username scott --password tiger --table emp -m 1 --columns 'empno,ename,job,sal,deptno'
使用sqoop导入oracle数据到hive中,并指定表名
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username scott --password tiger --table emp -m 1 --columns 'empno,ename,job,sal,deptno' --hive-table emp1
使用sqoop导入oracle数据到hive中,并使用where条件
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username scott --password tiger --table emp -m 1 --columns 'empno,ename,job,sal,deptno' --hive-table emp2 --where 'deptno=10'
使用sqoop导入oracle数据到hive中,并使用查询语句
./sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username scott --password tiger -m 1 --query 'select * from emp where sal<2000 and $CONDITIONS' --hive-table emp3 --target-dir '/sqoop/emp3'
使用sqoop将hive中的数据导出到oracle中
./sqoop export --connect jdbc:oracle:thin:@192.168.56.101:1521:orcl --username scott --password tiger -m 1 --table myemp --export-dir 'hdfs文件路径'
查看全部 -
hive数据的导入
适用load语句
语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]
INTO TABLE tablename [PARTITION (partcol1=val1,partcol2=val2 ...)]
其中
[LOCAL] 表示从操作系统目录上选取文件导入,如果不写从hdfs目录上选取文件导入
INPATH表示导入文件的路径
[OVERWRITE]表示是否覆盖表中记录
[PARTITION]表示指明导入的分区名字和条件
将student01.txt数据导入到t3
load data local inpath '/root/data/student01.txt' into table t3;
将/root/data下的所有数据文件导入t3表中,并且覆盖原来的数据
load data local inpath '/root/data/' overwrite into table t3;
将hdfs中/input/student01.txt导入到t3
load data inpath '/input/student01.txt' overwrite into table t3;
导入分区表
load data local inpath '/root/data/data1.txt' into table
partition_table partition (gender='M')
load data local inpath '/root/data/data2.txt' into table
partition_table partition (gender='F')
查看全部 -
本地数据导入到表格
HDFS数据导入到表格
本地数据导入到分区表格
查看全部 -
,需要实现evaluate函数,evaluate函数支持重载 创建好自定义函数后,我们需要把程序打成jar包,放到linux的hive服务器上
查看全部 -
子查询的空值问题:使用no in的时候括号里面返回的值不能为null;但是in是可以返回为null
查看全部 -
HIVE子查询 hive只支持from和where子查询 select e.ename from emp e where e.deptno in (select e.deptno from dept d where d.dname='SALES' or d.dname='ACCOUNTING');
查看全部 -
自连接的核心:通过表的别名将同一张表视为多张表
查看全部
举报