Fork me on GitHub

随笔分类 -  Hive

摘要:一、啥是宏 宏可以看做是一个简短的函数,或者是对一个表达式取别名,同时可以将这个表达式中的一些值做成变量调用时传入,比较适合于做分析时为一些临时需要用到很多次的表达式操作封装一下取个简短点的别名来调用。宏只在当前会话有效,当退出hive控制台再进入时上次创建的宏就丢失了,如果需要永久保留某个宏,可以将其加入到${HIVE_HOME}/.hiverc文件中。 二、创建宏 创建宏的语法:CRE... 阅读全文
posted @ 2019-01-07 12:15 CC11001100 阅读(4366) 评论(0) 推荐(0) 编辑
摘要:Hive有一个严格模式,在严格模式下会对可能产生较大查询结果的语句做限制,禁止其提交执行。 一、切换严格模式 查看当前的模式:hive> set hive.mapred.mode; hive.mapred.mode is undefined 未定义即为false,即no-strict模式。 开启严格模式:set hive.mapred.mode=strict; 关闭严格模式:set hi... 阅读全文
posted @ 2018-08-06 23:04 CC11001100 阅读(8805) 评论(0) 推荐(1) 编辑
摘要:在使用Hive的时候,有时候只是想取表中某个分区的前几条的记录看下数据格式,比如一个很常用的查询:select * from foo where partition_column=bar limit 10; 这种对数据基本没什么要求,随便来点就行,既然如此为什么不直接读取本地存储的数据作为结果集呢。 Hive命令都要转换为MapReduce任务去执行,但是因为启动MapReduce需要消耗资源... 阅读全文
posted @ 2018-08-06 22:52 CC11001100 阅读(2999) 评论(0) 推荐(0) 编辑
摘要:一、导出到本地 导出查询结果到本地:INSERT OVERWRITE LOCAL DIRECTORY "/tmp/hive-result/t_visit_video" SELECT * FROM t_visit_video ; 导出到的本地路径不必已经存在,会自动创建父目录,导出的查询结果会是一个文件夹,文件夹下存放着本次查询的结果,如果结果集比较大的话会分块存放。 每个数据块还会有一个C... 阅读全文
posted @ 2018-07-14 11:09 CC11001100 阅读(3041) 评论(0) 推荐(0) 编辑
摘要:Hive中collect相关的函数有collect_list和collect_set。 它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重。 做简单的实验加深理解,创建一张实验用表,存放用户每天点播视频的记录:create table t_visit_video ( username string, video_name ... 阅读全文
posted @ 2018-05-16 01:12 CC11001100 阅读(169443) 评论(1) 推荐(23) 编辑
摘要:创建数据库 hive创建数据库的最简单写法和mysql差不多:create database foo; 仅当名为foo的数据库当前不存在时才创建:create database if not exists foo; 创建数据库时指定位置,这个位置一般是在hdfs上的位置:create database foo location '/db/foo'; 查看已经创建的数据库:show data... 阅读全文
posted @ 2018-05-13 23:16 CC11001100 阅读(22843) 评论(0) 推荐(0) 编辑
摘要:hive中有三个与分组排序相关的分析函数(我起初也认为是窗口函数,后来看到手册里是把他们划到了Analytics functions下),row_number、rank、dense_rank,我一直傻傻的分不大清它们的区别,特地总结一下。 现在模拟一个场景,有一个比较时髦的学校决定借助大数据技术来提高教学质量,其中就有一张表存放了全校每个学生的考试成绩,按照学期进行分区,创建这张表:cre... 阅读全文
posted @ 2018-05-02 00:43 CC11001100 阅读(4317) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示