
hive
文章平均质量分 69
longshenlmj
这个作者很懒,什么都没留下…
展开
-
hive的top n
注意 hive 的hsql没有 top n这个功能,不像sql。所以实现top n如下: 我想说的SELECT TOP N是取最大前N条或者最小前N条。Hive提供了limit关键字,再配合order by可以很容易地实现SELECT TOP N。但是在Hive中order by只能使用1个reduce,如果表的数据量很大,那么orderby就会力不从心。例如我们执转载 2013-07-26 20:37:49 · 2338 阅读 · 0 评论 -
hive中使用case、if:一个region统计业务(hive条件函数case、if、COALESCE语法介绍:CONDITIONAL FUNCTIONS IN HIVE)
前言:Hive ql自己设计总结1,遇到复杂的查询情况,就分步处理。将一个复杂的逻辑,分成几个简单子步骤处理。2,但能合在一起的,尽量和在一起的。比如同级别的多个concat函数合并一个select也就是说,字段之间是并行的同级别处理,则放在一个hive ql;而字段间有前后处理逻辑依赖(判断、补值、计算)则可分步执行,提前将每个字段分别处理好,然后进行相应的分步简单逻辑处理。一、 场景:日志中原创 2015-04-28 17:40:48 · 28908 阅读 · 1 评论 -
hive的strict模式;where,group by,having,order by同时使用的执行顺序
主要限制三种情况(1) 有partition的表查询需要加上where子句,筛选部分数据实现分区裁剪,即不允许全表全分区扫描,防止数据过大(2) order by 执行时只产生一个reduce,必须加上limit限制结果的条数,防止数据量过大造成1个reduce超负荷(3) join时,如果只有一个reduce,则不支持笛卡尔积查询。也就是说必须要有on语句的关联条件,做自然连接。原创 2015-11-02 18:00:13 · 6747 阅读 · 0 评论 -
hive分组排序 取top N
pig可以轻松获取TOP n。书上有例子hive中比较麻烦,没有直接实现的函数,可以写udf实现。还有个比较简单的实现方法:用row_number,生成排名序列号。然后外部分组后按这个序列号多虑,样例代码如下select a.*from( select 品牌,渠道,档期,count/sum/其它() as num row_number() over (partition by 品原创 2016-01-15 18:43:15 · 23196 阅读 · 0 评论 -
hive日志位置(日志定位报错:Failed with exception Unable to move sourcehdfs://namenode/tmp/hive-pmp_bi/h)
Hive中的日志分为两种1. 系统日志,记录了hive的运行情况,错误状况。2. Job 日志,记录了Hive 中job的执行的历史过程。日志查看方法1,在本地运行机器上hive日志存储位置在本机上,不是hadoop上: 在hive/conf/ hive-log4j.properties 文件中记录, 该文件如果没有,就是使用默认,默认的存储情况: hive.ro原创 2015-12-17 17:17:17 · 11449 阅读 · 0 评论 -
shell命令执行hive脚本(hive交互,hive的shell编程)
Hive执行方式Hive的hql命令执行方式有三种:1、CLI 方式直接执行2、作为字符串通过shell调用hive –e执行(-S开启静默,去掉”OK”,”Time taken”)3、作为独立文件,通过shell调用 hive –f或hive –i执行执行方式1键入“hive”,启动hive的cli交互模式。Set可以查看所有环境设置参数,并可以重设。其他命令如, Use datab原创 2016-01-19 15:15:42 · 60196 阅读 · 4 评论 -
hive的数据导入与数据导出:(本地,云hdfs,hbase),列分隔符的设置,以及hdfs上传给pig如何处理
1数据导入--------------CREATE EXTERNAL TABLE wizad_mdm_dev_lmj_edition_20141120 (cookie_id STRING,guid STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'stored a原创 2014-11-26 18:13:22 · 26894 阅读 · 2 评论 -
hive高阶1--sql和hive语句执行顺序、explain查看执行计划、group by生成MR
hive语句执行顺序msyql语句执行顺序代码写的顺序:select ... from... where.... group by... having... order by.. 或者from ... select ...代码的执行顺序:from... where...group by... having.... select ... order by...hive 语句执行顺序大致原创 2016-06-02 20:22:37 · 32328 阅读 · 10 评论 -
hive分区partition(动态和静态分区混合使用; partition的简介)
分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样where中给出列值时,只需根据列值直接扫描对应目录下的数据,不扫面其他不关心的分区,快速定位,查询节省大量时间。分动态和静态分区两种动态分区1)不显示的给出分区名,根据列的取值自动建立对应分区(多少种取值,多少种分区),所以需要限制最大分区数: SET hive.exec.dynamic.partition=t原创 2016-05-18 19:41:22 · 13995 阅读 · 0 评论 -
转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则
转义字符将后边的字符转义,各个语言中都用应用,如java、python、sql、hive、shell等等。如sql中 "\"" "\'" "\t" "\n"sql中直接输出 " ' tab键 换行键转义字符的一般应用直接用\加上转义的字符就行了,如java和原创 2015-10-10 17:46:55 · 21137 阅读 · 3 评论 -
hive指定hadoop执行队列
指定队列的命令:有三种:set mapred.job.queue.name=queue3;SET mapreduce.job.queuename=queue3;set mapred.queue.names=queue3;老版本一般 mapred开头 新版本是mapreduce开头 老版本对应的新版本参数可以查出来队列自己设定,测试时注意select * from tb 不会产生map re原创 2016-07-22 12:52:40 · 46662 阅读 · 0 评论 -
hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)
数据做压缩和解压缩总会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销最好对那些I/O密集型的作业使用数据压缩hive表的存储格式为 TEXTFILE SEQUENCEFILE(三种压缩选择:NONE, RECORD, BLOCK。 Record压缩率低,一般建议使用BLOCK压缩) RCFILE 自定义格式原创 2016-01-20 19:49:44 · 29123 阅读 · 1 评论 -
hive中的NULL(hive空值处理)
HIVE中默认将NULL存为\N,可以在线上用hadoop fs -cat查看源文件,文件中存储大量\N, 这样量大会浪费大量空间。如果用java、python操作源数据时要注意解析。 另外,hive表的源文件中默认,列分隔符为\001(SOH),行分隔符为\n(目前只支持\n,别的不能用,所以定义时不需要显示声明)。元素间分隔符\002,map中key和value的分隔符为\003。原创 2016-05-19 10:27:45 · 39535 阅读 · 2 评论 -
hive编程指南——读书笔记(无知拾遗)
set hive.metastore.warehouse.dir=/user/myname/hive/warehouse;用户设定自己的数据仓库目录。不影响其他用户。也在$HOME/.hiverc中设置,则每次启动hive自动加载hive -(d,ef,H,h,i,p,S,v)定义变量var,在hql中直接引用${var}set (显示或修改)原创 2015-04-30 10:17:40 · 1500 阅读 · 2 评论 -
hive中与hbase外部表join时内存溢出(hive处理mapjoin的优化器机制)
与hbase外部表(wizad_mdm_main)进行join出现问题:CREATE TABLE wizad_mdm_dev_lmj_edition_result asselect * from wizad_mdm_dev_lmj_20141120 as w JOIN wizad_mdm_main as a ON (a.rowkey = w.guid);程序启动后,死循环原创 2014-11-28 17:03:17 · 3279 阅读 · 0 评论 -
hive使用过的基本命令
use不能忘show databases; 后,用use aso进入database:aso。 show columns from table_name from database_name; 或show columns from database_name.table_name;解释:显示表中列名称show grants for user_name@localhost;解原创 2013-12-12 21:33:44 · 1496 阅读 · 0 评论 -
hive深入浅出
第一部分:DDLDDL•建表 •删除表 •修改表结构 •创建/删除视图 •创建数据库 •显示命令 建表CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table转载 2013-08-09 14:53:09 · 1198 阅读 · 0 评论 -
hive基本的操作语句(实例简单易懂,create table XX as select XX)
创建表:hive> CREATE TABLE pokes (foo INT, bar STRING); Creates a table called pokes with two columns, the first being an integer and the other a string创建一个新表,结构与其他一样hive> create table new转载 2014-04-16 11:32:43 · 36274 阅读 · 0 评论 -
hive parition的使用,分dynamic和static两种
partition是hive提供的一种机制:用户通过指定一个或多个partition key,决定数据存放方式,进而优化数据的查询一个表可以指定多个partition key,每个partition在hive中以文件夹的形式存在。实例(static partition):编辑文件:/home/work/data/test3.txt; /home/work/data/test4.tx转载 2014-03-24 15:43:29 · 1249 阅读 · 0 评论 -
hive发杂数据结构的使用,struct,array,map
hive提供了复合数据类型:Structs: structs内部的数据可以通过DOT(.)来存取,例如,表中一列c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域aMaps(K-V对):访问指定域可以通过["指定域名称"]进行,例如,一个Map M包含了一个group-》gid的kv对,gid的值可以通过M['group']来获取Arrays:array中的转载 2014-04-23 17:56:40 · 3198 阅读 · 0 评论 -
Hive操作语句实例讲解(帮助你了解 桶 bucket)
#创建表人信息表 person(String name,int age) hive> create table person(name STRING,age INT)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' STORED AS TEXTFILE; OK Time taken: 0.541 second转载 2014-06-26 11:40:53 · 2169 阅读 · 0 评论 -
hive语句嵌入python脚本(进行map和reduce,实现左外连接)
add file ${python_script_path}/lanch_interval_count.py;drop table temp_lanch_interval2;create table temp_lanch_interval2 as select reportdate, appid,channelname, app_version, deviceid,ts,sameday原创 2014-04-23 17:54:35 · 5975 阅读 · 0 评论 -
hive的map类型处理
--首先进行一些基础配置设置:SET mapred.job.queue.name=queue3;SET hbase.client.scanner.caching=5000;SET hbase.zookeeper.quorum=datanode06,datanode07,datanode08;SET zookeeper.znode.parent=/hbase;--然后对h原创 2014-11-26 18:10:01 · 20593 阅读 · 0 评论 -
hive:(group by, having;order by)的使用;group by+多个字段,以及wiki说的group by两种使用限制验证
hive上 查询hive> select * from app_data_stats_historical where os='1' group by dt limit 100;出现结果如下:2014-01-012014-01-062014-01-132014-01-202014-01-272014-02-012014-02-032014-02-0420原创 2014-03-24 16:12:42 · 31455 阅读 · 0 评论 -
hive支持in用法是从0.3.2版本后
写hive 用in如分时段,分类型,分平台统计点击量select substr(createtime,12,2) hour,logtype,os_id,count(*) from wizad_mdm_raw_hdfs rawwhere ad_id in ('19829','19830','19831','26657d5ff9020d2abefe558796b99584') and原创 2015-01-28 16:50:31 · 4215 阅读 · 4 评论 -
hive表的存储格式; ORC格式的使用
hive表的源文件存储格式有几类: 1、TEXTFILE 默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过hadoop fs -cat 查看 2、SEQUENCEFILE 一种Hadoop API提供的二进制文件,使用方便、可分割、可压缩等特点。 SEQUENCEFILE将数据以方式一create table i原创 2016-06-17 20:02:22 · 48198 阅读 · 6 评论