![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
数据小白的进阶之路
数据小白的进阶之路。。。
展开
-
获取hdfs文件到本地的两种方法比较
一、前言最近在搞数据传输的东西,涉及到hdfs的操作,主要有两种方法:1、hive -e方法2、hdfs dfs -get方法二、详解:两者都可以将集群的数据写入到本地,但是所存储的格式存在差别:方法一:hive -e将集群的数据拉取到本地,所 存储的格式是服务器默认存储的格式,这种格式存在的问题是:如果在将文件导入到另外一台集群时,如果创建表的分割符与机器的默认分割不一致,就会导致列分割失败,所有的列会写入一个字段中。hive -e "USE htl_data;SELEC原创 2021-09-18 16:40:24 · 4593 阅读 · 0 评论 -
服务器免密数据传输及hdfs文件操作记录
需求描述: 最近需要在两台没有打通的服务器之间进行数据传输,因为设置的任务每天自动调度,因此不能直接使用scp命令直接拿数据,不然每次都要手动输入密码。后发现可以使用spwan命令可以解决这一问题,同时将另外一个机器的数据上传到hdfs集群上。在此记录一下~通过shell脚本实现上述需求,实现代码如下:#!/bin/shdata_target="/home/admin/hotel/jk_data"set -eWORKDIR=`dirname $0`DIR=`cd $WOR...原创 2021-09-15 14:51:18 · 243 阅读 · 0 评论 -
Hive中存在的数据倾斜问题
真是好久没写博客了。。。趁着今天休息,把以前遇到的问题整理一下吧。互联网中的数据量通常会很大,比如埋点数据。。。因此在日常数据处理中就会遇到数据倾斜的问题,就是那种跑半天跑不出数据或者reduce阶段卡在99%的那种情况。。。今天来说一下日常遇到数据倾斜的解决办法!本文将从一下几个方面进行总结:1、去重问题: 1.1 union-union all(子查询实现job的并行...原创 2019-07-06 16:17:05 · 1793 阅读 · 1 评论 -
Hive之Grouping Sets函数
最近在看一些关于Hive优化的东西,看到一个很好用的函数:Grouping Sets函数,今天就先总结一下关于这个函数的用法!在一个GROUP BY 查询中,根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果进行UNION ALL操作。GROUPING SETS就是一种将多个GROUP BY逻辑UNION写在一个HIVE SQL语句中的便利写法。GROUPING SETS会把在...原创 2019-03-17 22:33:41 · 32632 阅读 · 3 评论 -
hive中日期问题—取具体某一天为周几的方法及其应用
在实际的业务中,我们会遇到取历史某一天为周几,类似的这样的问题,我这里提供一个方法。具体如下:场景:取历史一年的数据,按周汇总,并且将每周汇总数据统计到周一对应的日期。(当然这里可以对应到任意周几)数据存放在表:dw_db.tmp_data_info_week,数据格式如下:下面提供具体的解决方法:思路:1、求出上述日期对应周几,找出每一天所在周的周一和周日。 ...原创 2019-02-24 14:47:32 · 9128 阅读 · 0 评论 -
hive之求累计值
最近做项目真是忙到昏厥,抽个空写篇博客吧,保持良好的学习习惯~今天要写的是工作中经常遇到的求累计值的问题。从订单表中取出orderid,uid,time,ciiamount,数据格式如下:现需要计算每个uid每天累计的成交金额。SQL代码如下:--汇总每个uid每天的订单成交金额USE edw_htl;DROP TABLE IF EXISTS tmp_linshi_c...原创 2018-10-22 22:12:05 · 12167 阅读 · 1 评论 -
hive中提高代码运行效率的参数配置及代码优化
今天整理下平时hive中用以提高代码运行效率的几个参数,和大家分享一下:1、set mapreduce.map.memory.mb=5120; 此参数是设置每个map使用内存的大小,默认1024M,这个参数是控制map数量的关键参数。如果需要处理的文件较多或 较大时,则分开处理效率会较快,如果文件较少或较小时会造成map资源的浪费。2、set mapr...原创 2018-09-06 19:09:35 · 2225 阅读 · 0 评论 -
hive中两种日期格式的转换
在解析埋点数据时会遇到两种不同的日期格式:yyyymmdd和yyyy-mm-dd,此类型之间的转换主要有两种思路:第一种方法:from_unixtime+unix_timestamp--20180905转成2018-09-05select from_unixtime(unix_timestamp('20180905','yyyymmdd'),'yyyy-mm-dd')from dw....原创 2018-09-05 13:45:48 · 73833 阅读 · 3 评论 -
hive中求相邻时间问题的两种解决方法
hive中经常会有求连续数字或者连续的时间这种问题,其实处理的方法一致。首先给出数据的结构:假如表dw.tmp_interview_data中存放有如下样式的数据: 求出表dw.tmp_interview_data中每个人连续工作时间段及对应的工资和,结果表如下: 姓名 开始日期 结束日期 总工资 ...原创 2018-08-28 10:20:12 · 5339 阅读 · 0 评论 -
hive中dense_rank&row_number&rank函数
hive中三个排序函数rank、row_number、dense_rank日常中比较常用到,今天来说说三者的区别:1、rank()函数此排序方法进行排序时,相同的排序是一样的,而且下一个不同值是跳着排序的。2、row_number()函数此方法不管排名是否有相同的,都按照顺序1,2,3…..n 3、dense_rank()函数此方法对于排名相同的名次一样,且后面名次不跳跃...原创 2018-08-08 20:03:21 · 10173 阅读 · 0 评论 -
hive中关于子查询的问题
在传统的关系型数据库中,是支持子查询操作的,但是在基于Hadoop的hive中却不支持这一操作,因此可以通过一些方法进行转换。实例,执行如下sql:select * from dw.ordersnap_total where d='2018-08-09' and session_id in ( select session_id ...原创 2018-08-13 10:40:27 · 15711 阅读 · 2 评论 -
hive中表操作的汇总
在使用hive时,会时常遇到一些表的操作,今天就把平时积累的和大家分享一下~1、修改字段名--语法格式alter table 表名 CHANGE col_old_name col_new_name new_type;--实例use dw_bi;alter table dimcity CHANGE region war_zone string;2、增加字段名--语法格式...原创 2018-08-09 14:08:37 · 1397 阅读 · 0 评论 -
hive中零星知识点总结
工作中会遇到(想起)一些小的知识或者函数,集中一篇文章来进行总结:1、on和where的区别on:是指表与表之间连接条件where:表与表之间连接之后,再按照where指定的条件进行筛选2、COALESCE其是非空查找函数案例:select COALESCE(null,’aaa’,50)from lxw_dual;返回值为:aaa其函数作用是返回列表中第一个不为nu...原创 2018-08-09 13:41:06 · 281 阅读 · 0 评论 -
hive中的正则表达式及其应用
今天来说一下hive中的正则表达式,主要包含:元字符匹配、位置匹配、频率匹配1、元字符匹配(.) 表示匹配除换行符以外的任意字符。(\w) 表示匹配字母、下划线、数字或汉字(\\W)。(\d) 表示匹配数字(\s) 表示匹配任意的空白符([ ]) 表示匹配方括号中任一字符([^匹配内容]) 表示匹配方括号中任一字符2、位置匹配(^) 表示匹配字符串的开始,...原创 2018-07-20 15:18:01 · 60720 阅读 · 1 评论 -
hive技巧之—行转列的另一种实现方法
前两天有个行转列的需求困扰了同事,我看了之后想出如下自认为较为简单的实现方法,和大家分享一下~数据格式如下:现在的目标是像转为一行,即:productid 服务 位置 设施 卫生344920 ** ** ** ** 现在想到的方式case when 结合concat_ws与collect_set实现,代码如下:se...原创 2018-07-23 14:33:49 · 7316 阅读 · 0 评论 -
hive中json字符串解析之get_json_object与json_tuple
在技术对app进行埋点时,会讲多个字段存放在一个数组中,因此模型调用数据时,要对埋点数据进行解析,以作进一步的清洗。本文将介绍解析json字符串的两个函数:get_json_object和json_tuple。表结构如下:一、get_json_object函数的作用:用来解析json字符串的一个字段:select get_json_object(flist,'$.filtertype'...原创 2018-06-08 17:03:54 · 52343 阅读 · 0 评论 -
hive中对多行进行合并—collect_set&collect_list函数
最近在项目中清洗了一些埋点的数据,要求是将一张表中特定字段的行进行合并,并且不对重复的数据进行去重如下,数据形式如下,要对from字段进行进行合并:一开始用collect_set函数实现,发现对字段进行去重了,后来发现collect_list函数可以实现,现将两者的区别总结如下:1、concat_ws和collect_set()函数实现(对某列进行去重)其作用是将多行...原创 2018-06-06 17:18:48 · 60758 阅读 · 3 评论