hive使用过的基本命令
命令:完成操作
hive:进去hive
show databases:显示 所有database
use wizad: 使用database wizad,或者如use aso
show tables:显示当前database下的所有表
show columns from table_name from database_name; 或show columns from database_name.table_name; :显示表中列名称
show grants for user_name@localhost;:显示一个用户的权限,显示结果类似于grant 命令
show index from table_name;:显示表的索引
show logs;:显示BDB存储引擎的日志
show warnings;:显示最后一个执行的语句所产生的错误、警告和通知
show errors;:只显示最后一个执行语句所产生的错误
desc table_name:显示表信息(字段、分区)
desc formatted wizad_mdm_raw_hdfs;:显示表详细信息 (字段、分区、路径、格式等)
效果如下:
limit使用:
select * from app_data limit 100;
count:
select count(*) from app_data;
count非常耗费时间,下面有个别人写的小例子。
SELECT type ,
count(*) ,
count(DISTINCT u) ,
count(CASE WHEN plat=1 THEN u ELSE NULL) ,
count(DISTINCT CASE WHEN plat=1 THEN u ELSE NULL) ,
count(CASE WHEN (type=2 OR type=6) THEN u ELSE NULL) ,
count(DISTINCT CASE WHEN (type=2 OR type=6) THEN u ELSE NULL)
FROM t WHERE dt in ("2012-1-12-02", "2012-1-12-03")
GROUP BY type
ORDER BY type ;
hive表按partition查询,效率高:
show partitions table_name;:显示表table_name分区
show partitions wizad_mdm_raw_hdfs; :
day=2014-12-20/adn=3
day=2014-12-21/adn=3
day=2014-12-21/adn=5
descformatted t2 partition (pt = '2014-10-17');:查看分区属性
建分区两种:
1,建表时建分区:
CREATE TABLE tab(
column1 STRING,
columnN STRING
) partitioned BY (day STRING);
2,在已存在表上加分区:
alter table wizad_mdm_raw_hdfs add partition (day='2014-12-20',adn='3') location '/user/wizad/data/wizad/raw/2014-12-20/3_1/';
alter table wizad_mdm_raw_hdfs add partition (day='2014-12-20',adn='5') location '/user/wizad/data/wizad/raw/2014-12-20/5_1/';
删除分区:
ALTER TABLE wizad_mdm_raw_hdfs DROP PARTITION (day='2014-12-23',adn='3');
ALTER TABLE wizad_mdm_raw_hdfs DROP PARTITION (day='2014-12-23',adn='5');
修改表
ALTER TABLE old_table_name RENAME TO new_table_name;:重命名
ALTER TABLE tab1 ADD COLUMNS (c1 INT, c2 STRING);:添加字段
创建外部表:
CREATE EXTERNAL TABLE wizad_mdm_dev_lmj_mapping_cookie (
cookie_id STRING,
guid STRING
) ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
stored as textfile
location '/user/wizad/tmp/mapping_cookie/';
格式是:
CREATE EXTERNAL TABLE tab (
column1STRING,
column2STRING,
column3STRING,
column4STRING,
columnNSTRING
) ROW FORMATDELIMITED
FIELDSTERMINATED BY '\t'
stored astextfile
location'hdfs://namenode/tmp/lmj/tab/';
hive语句执行环境相关参数设定:
SET mapred.job.queue.name=queue3;
SET hbase.client.scanner.caching=5000;
SET hbase.zookeeper.quorum=datanode06,datanode07,datanode08;
set zookeeper.znode.parent=/hbase;
set hbase.regionserver.lease.period=180000;
将查询结果保存到本地
INSERT OVERWRITE LOCAL DIRECTORY '/home/wizad/lmj/'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
select cookie_id,rowkey,fixeddim_map
from wizad_mdm_main_from_hbase as a JOIN wizad_mdm_dev_lmj_edition_20141120 as w
ON (w.guid = a.rowkey);
这里有一个优化的小例子:http://www.myexception.cn/internet/477451.html
hive使用过的基本命令的更多相关文章
- Hive基本命令整理
创建表: hive> CREATE TABLE pokes (foo INT, bar STRING); Creates a table called pokes with t ...
- Hive基本命令解析
1. Hive的分区作用 命令:创建分区 create table t_sz_part(id int, name string) partitioned by (country string) row ...
- Hive shell 基本命令
首先连接 hive shell 直接输入 hive启动, 使用--开头的字符串来表示注释 hive>quit; --退出hive hive> exit; --exit会影响之前的使用,所以 ...
- Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》
一.什么是sqoop Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL ...
- Hive基础概念、安装部署与基本使用
1. Hive简介 1.1 什么是Hive Hives是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.2 为什么使用Hive ① 直接使用 ...
- docker安装hive笔记
前两篇文章介绍了docker的基本命令如何安装hadoop 那么大家会比较了解docker的基本语法的安装过程.那么咱们今天来一起安装一下hive. 安装 1.下载gitHub,地址:https:// ...
- Hive/hbase/sqoop的基本使用教程~
Hive/hbase/sqoop的基本使用教程~ ###Hbase基本命令start-hbase.sh #启动hbasehbase shell #进入hbase编辑命令 list ...
- Hive Shell 命令详解
Hive服务介绍 Hive默认提供的cli(shell)服务,如果需要启动其他服务,那么需要service参数来启动其他服务,比如thrift服务.metastore服务等.可以通过命令hive -- ...
- Hive 1.2.1&Spark&Sqoop安装指南
目录 目录 1 1. 前言 1 2. 约定 2 3. 服务端口 2 4. 安装MySQL 2 4.1. 安装MySQL 2 4.2. 创建Hive元数据库 4 5. 安装步骤 5 5.1. 下载Hiv ...
随机推荐
- SQLite 创建表(http://www.w3cschool.cc/sqlite/sqlite-create-table.html)
SQLite 创建表 SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表.创建基本表,涉及到命名表.定义列及每一列的数据类型. 语法 CREATE TABLE 语句的基 ...
- Android简易实战教程--第二十一话《内容观察者监听数据库变化》
当数据库的数据发生改变,我们又想知道具体改变的情况时,就需要对数据库的变化情况做一个监控.这个任务,就由内容观察者来完成.下面这个案例,为短信数据库注册内容观察者,来监控短信的变化情况,当短信数据库发 ...
- 剑指Offer——巧妙使用sort(List<T>,Comparator<? super T>)比较器
剑指Offer--巧妙使用sort(List<T>,Comparator<? super T>)比较器 先入为主 package cn.edu.ujn.offersword; ...
- Android官方推荐使用DialogFragment替换AlertDialog
DialogFragment是在Android3.0(API level 11)中引入的,它代替了已经不建议使用的AlertDialog. DialogFragment高效地封装和管理对话框的生命周期 ...
- 探索Antlr(Antlr 3.0更新版)
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/dreamhead-logs/10756716.html <探索Antlr> ...
- struts2国际化全例 错误解决
在struts2中需要做国际化的有: jsp页面的国际化,action错误信息的国际化,转换错误信息的国际化,校验错误信息的国际化 在之前的例子中已经做过和国际化相关的例子了,在struts.xml中 ...
- (NO.00004)iOS实现打砖块游戏(六):反弹棒类
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 打砖块游戏另一个要素是反弹棒,我们在这篇类来实现反弹棒类. 创建 ...
- Java进阶(一)Java内存解析
栈.堆.常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同.本文将深入Java核心,简单讲解Java内存分配方面的知识. 首先我们先来讲解一下内存中的各个区域. stack(栈) ...
- Java中函数的递归调用
说到递归,java中的递归和C语言中也是很相似的,在Java中,递归其实就是利用了栈的先进后出的机制来描述的. public class HelloWorld { public static void ...
- Android studio中的一次编译报错’Error:Execution failed for task ':app:transformClassesWithDexForDebug‘,困扰了两天
先说下背景:随着各种第三方框架的使用,studio在编译打包成apk时,在dex如果发现有相同的jar包,不能创建dalvik虚拟机.一个apk,就是一个运行在linux上的一个虚拟机. 上图就是一直 ...