hive
文章平均质量分 68
花和尚也有春天
会收集一些不错的文章,时常品读,也学着自己总结一些东西,坚持努力的方向!
展开
-
hive:函数:排名函数:Rank(笔记)
Rank1.函数说明RANK() 排序(排名)相同时会重复,总数不会变DENSE_RANK() 排序(排名)相同时会重复,总数会减少ROW_NUMBER() 依次进行排名2.数据准备表6-7数据准备 name subject score 孙悟空 语文 87 孙悟空 数学 95 孙悟.原创 2020-08-12 13:10:18 · 2594 阅读 · 0 评论 -
hive:使用concat_ws实现 array转string
array转string:select * from ( select collect_list(id) id_array, concat_ws('',collect_list(id)) id_string, --array转string origin_id from( select concat('{',id,'}') id, origin_id --付款通知书id from ods.ods_awa_finance_income where原创 2020-07-31 12:40:53 · 14242 阅读 · 0 评论 -
hive:修改hive的元数据库
hive-site.xml文件中修改如下几个参数:<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://192.168.56.204:3306/hive_metastore?createDatabaseIfNotExist=true</value></property><property>&l...原创 2020-07-26 15:25:39 · 744 阅读 · 0 评论 -
sql:hive:mysql:group by与distinct 去重
源数据(mysql)id userid subject score1 001 语文 90.02 001 数学 92.03 001 英语 80.04 002 语文 88.05 002 数学 90.06 002 英语 75.57 003 语文 70.08 003 数学 85.09 003 英语 90.010 003 政治 82.011 001 语文 91.012 001 语文 92.0源数据(hive)C1 C2 C3 C4.原创 2020-06-17 10:32:15 · 1138 阅读 · 0 评论 -
sql:hive:函数:udf函数中使用case when
valanDF:DataFrame=spark.sql(s"""|select|namecn,UDFtest('10003',(casewhenstatus='A'then'1'whenstatus='B'then'2'whenstatus='C'then'3'end),origin)buss|from dd.lients|wheress='3'|andupdat...原创 2020-06-01 17:12:24 · 450 阅读 · 0 评论 -
sql:hive:mysql:函数:NVL、NVL2、NULLIF,IFNULL、Coalesce
NVL:第一个参数为空(注意这里是指null,不是空串)那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值select NVL(age,9999999 ) from tmp.testage223999999977...mysql中没有nvl ()函数,使用ifnull代替SELECT ifnull(valuess,'11111') a FROM test_regexp;NVL2:格式:NVL2(expr1,expr2, expr3)如果该.原创 2020-05-27 17:10:42 · 2168 阅读 · 1 评论 -
hive:正则:匹配中文/英文/数字(REGEXP 和 rlike)
数据:Java开发工程师Java工程师海外BD岗移动web研发工程师DBA工程师JAVA高级开发工程师PHP开发工程师android资深开发经理课程顾问/sales managerEPM认证工程师品牌总监分时租赁总经理销售总经理硬件测试工程师薪酬管理岗算法工程师大区销售总监财务经理研发总监110100110100130100130100160100200500160100110100110100110100484946964861474原创 2020-05-15 16:48:50 · 25015 阅读 · 3 评论 -
hive:几种实现like的方式
Locate:SELECT s.title,t.nameFROM (select * from bo.t_positions limit 1000) sRIGHT JOIN resume.pf_basic_dic tON(TRUE)WHERE LOCATE(s.title,t.name)>0like:SELECT s.position_name,t.senior_name FROM (select * from tmp.t_position_name_data_times_le原创 2020-05-11 20:10:00 · 4350 阅读 · 0 评论 -
hive:表做关联,字段出现了换行
我用sqoop拉取mysql表,到hive中后表的存储格式为parquet格式。这时我要用此表关联另一张表,自己建的表。如下:两个建表语句(语句2多了 STORED AS parquet):语句1: CREATE TABLE `tmp.t_position_name_data_times_greate300_positions`( `id` string, `title` string, `company_name` string, `work_city` string原创 2020-05-11 11:27:35 · 1030 阅读 · 0 评论 -
hive:sparksql:针对反斜杠的正则替换问题
hive中如何替换反斜杠:sparksql中如何替换反斜杠:select position_name,code,senior_name,parent_code,level from position_name_data pnd right join senior_function_data sfd on regexp_replace(sfd.senior_name,'\\\\'...原创 2020-04-27 11:06:30 · 3403 阅读 · 0 评论 -
hive:hbase:HBase与Hive集成使用
尖叫提示:HBase与Hive的集成在最新的两个版本中无法兼容。所以,我们只能含着泪勇敢的重新编译:hive-hbase-handler-1.2.2.jar!!好气!!环境准备因为我们后续可能会在操作Hive的同时对HBase也会产生影响,所以Hive需要持有操作HBase的Jar,那么接下来拷贝Hive所依赖的Jar包(或者使用软连接的形式)。 export HBASE_HOM...原创 2020-03-16 16:22:07 · 633 阅读 · 0 评论 -
hvie:UDAF开发指南
refer to:http://www.cnblogs.com/ggjucheng/archive/2013/02/01/2888051.html在用Hive进行ETL的时候,对于一些复杂的数据处理逻辑,往往不能用简单的HQL来解决,这个时候就需要使用UDAF了。对于底层的内容还没有细看,先从应用的角度来说一下吧。使用UDAF需要实现接口GenericUDAFResolve...转载 2020-02-29 23:31:58 · 474 阅读 · 0 评论 -
hive:UDAF开发详解
说明这篇文章是来自Hadoop Hive UDAF Tutorial - Extending Hive with Aggregation Functions:的不严格翻译,因为翻译的文章示例写得比较通俗易懂,此外,我把自己对于Hive的UDAF理解穿插到文章里面。udfa是hive中用户自定义的聚集函数,hive内置UDAF函数包括有sum()与count(),UDAF实现有简单与通用两种...转载 2020-02-29 00:58:45 · 1274 阅读 · 0 评论 -
hvie:基本概念
.1 什么是HiveHive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的实现是MapReduce3)执行程序运行在Yarn上1.2 Hive的...原创 2020-02-28 01:11:43 · 562 阅读 · 0 评论 -
hive:函数:自定义函数(笔记)
7.2 自定义函数1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。3)根据用户自定义函数类别分为以下三种:(1)UDF(User-Defined-Function)一进一出(...原创 2020-02-28 00:43:51 · 295 阅读 · 0 评论 -
hive:窗口函数/开窗函数 OVER()(笔记)
6.7.4窗口函数(开窗函数)1.相关函数说明OVER():指定分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变而变化。CURRENT ROW:当前行nPRECEDING:往前n行数据nFOLLOWING:往后n行数据UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDEDFOLLOWING表示到后面的终点...原创 2020-02-27 01:54:10 · 1231 阅读 · 0 评论 -
hive:行转列和列转行(笔记)
6.7.2 行转列1.相关函数说明CONCAT(string A/col, string B/col…):返回输入字符串连接后的结果,支持任意个输入字符串;CONCAT_WS(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数是剩余其他参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。...原创 2020-02-27 00:51:49 · 3077 阅读 · 0 评论 -
hive:分桶(笔记)
6.6 分桶及抽样查询6.6.1 分桶表数据存储分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区。对于一张表或者分区,Hive 可以进一步组织成桶,也就是更为细粒度的数据范围划分。分桶是将数据集分解成更容易管理的若干部分的另一个技术。分区针对的是数据的存储路径;分桶针对的是数据文件。1.先创建分桶表,通过直接导入数据文件的方式(1)数据准备...原创 2020-02-26 23:56:24 · 182 阅读 · 0 评论 -
hive:几种排序的区别(排序)
排序6.5.1 全局排序(Order By)Order By:全局排序,只有一个Reducer1.使用 ORDER BY 子句排序ASC(ascend): 升序(默认)DESC(descend): 降序2.ORDER BY 子句在SELECT语句的结尾3.案例实操(1)查询员工信息按工资升序排列hive (default)> select * from ...原创 2020-02-25 01:55:12 · 988 阅读 · 1 评论 -
hive:分区表
4.6 分区表分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。4.6.1 分区表基本操作1.引入分区表(需要根据日期对日志进行管理)/user/hive/warehouse/l...原创 2020-02-25 01:45:48 · 286 阅读 · 0 评论 -
hive:函数:json_tuple处理json数据
在处理日志数据时,会遇到json格式的数据。那么,在hive中如何处理它呢?一般情况下,json数据会以string类型,字符串格式进行存储。 创建案例 create database temp_db; --drop database temp_d;--这次导入的数据中使用空格来分割create table temp_db.json_test(id int comment ...原创 2020-02-22 16:01:31 · 15872 阅读 · 0 评论 -
hive:map/array/struct 数据结构
create table test_map_array_struct(name string,friends array<string>,children map<string,int>,address struct<string:string,city:string>)row format delimited fields terminated...原创 2020-02-22 11:00:22 · 1517 阅读 · 0 评论 -
hive:技巧:生成 ”日期列“ 用作一张关联表
select cast(tmp.time as String) time from ( select date_add('2018-01-01',a.rk) time from(select row_number()over(order by 1) as rk from ods.t_company limit 2000) a ) tmp where tmp.time &...原创 2020-02-21 15:22:43 · 2204 阅读 · 0 评论 -
hive:table表中的数据的导出导出几种方式(DML数据操作)
导入:本地文件导入到Hive表; Hive表导入到Hive表; HDFS文件导入到Hive表; 创建表的过程中从其他表导入; 通过sqoop将mysql库导入到Hive表导出:Hive表导出到本地文件系统; Hive表导出到HDFS; 通过sqoop将Hive表导出到mysql库;Hive数据导出的几种方式:1.hive shell 1) 导出到本地目录...原创 2020-02-10 17:25:11 · 3392 阅读 · 0 评论 -
sql:mysql:IFNULL() 函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。IFNULL() 函数语法格式为:IFNULL(expression, alt_value)参数 描述 expression 必须,要测试的值 alt_value 必须,expression 表达式为 NULL 时返回...原创 2020-01-14 14:52:48 · 354 阅读 · 0 评论 -
hive/mysql:函数:repeat() 重复
用来复制字符串,如下’ab’表示要复制的字符串,2表示复制的份数select repeat('ab',2);//ababselect repeat('a',2);//aa原创 2020-01-14 14:21:02 · 3840 阅读 · 0 评论 -
sql:mysql:函数:字符串函数
locate(字符,字段名):使用locate(字符,字段名)函数,如果包含,返回>0的数(这个数是这个字符在这个字段中的字符串中的位置),否则返回0语法: locate(string substr, string str[, int pos])返回值: int说明:返回字符串 substr 在 str 中从 pos 后查找,首次出现的位置hive> select...原创 2019-01-22 14:15:24 · 787 阅读 · 0 评论 -
sql:函数:FIND_IN_SET(str,strList)
str 要查询的字符串 strList 字段名,参数以“,”分隔,如(1,2,6,8) 查询字段(strList)中包含的结果,返回结果null或记录。假如字符串str在由N个子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 一个字符串列表就是一个由一些被 ‘,’ 符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则FIND...原创 2019-11-13 16:52:43 · 1230 阅读 · 0 评论 -
hive:函数:内置函数大全
一、内置函数HIVE除了提供了类似mysql的sql的语法外,还提供了大量内置的函数,方便开发者来调用,编写功能丰富的处理程序。1、内置运算符1.关系运算符 运算符 类型 说明 A = B 所有原始类型 如果A与B相等,返回TRUE,否则返回FALSE ...转载 2019-11-12 19:35:05 · 329 阅读 · 0 评论 -
hive:函数:pmod(int a, int b) 返回a除b的余数的绝对值
pmod(int a, int b)pmod(double a, double b)返回a除b的余数的绝对值。实例1: select datediff('2018-01-02','2018-01-01') //1 select pmod(datediff('2018-01-02','2018-01-01') + 1,7) //2casewhen pmod(dated...原创 2019-11-12 16:27:25 · 13785 阅读 · 4 评论 -
hive:与hbase映射表
CREATE EXTERNAL TABLE `ood.ods_aim_ki_cords_real_time`( `id` bigint, `employeeno` string, `employeename` string, `branchno` string, `postno` string, `teamno` string, `clientid` in...原创 2019-11-06 10:08:39 · 386 阅读 · 0 评论 -
hive:字符串转int
select start_time from os.os_cater_t_caf_info;select cast(start_time AS BIGINT) aa from os.os_canter_t_calof_info;原创 2019-11-04 19:46:55 · 39381 阅读 · 0 评论 -
hive:与es交互:hive on es(外联表)
hive整合es,通过建外联表做映射,数据实际存储在es。注意:hive建内部表时数据存储在hdfs,与es建外联表时,数据存储在es里。创建表语句demo:CREATE EXTERNAL TABLE `es.test`( `id` string, `keyword` string, `tenderId` bigint, `update_time` string, ...原创 2019-11-01 17:57:19 · 5770 阅读 · 0 评论 -
hive:函数:日期比较函数:datediff() + months_between() 求时间差(天数时间差+小时时间差+分钟时间差+秒时间差)
求两个时间相差的天数:select datediff('2018-07-09','2018-06-05');求两个时间相差的月数:select months_between('1997-02-28', '1996-1-30')求两个时间相差的年数:其他方式:先转换为时间戳格式再求时间差:将两个字段转换为为毫秒类型时间戳,相减,再转换为2019-06-23 00...原创 2019-10-30 20:05:58 · 11000 阅读 · 1 评论 -
hive:创建udf函数过滤emoji表情等特殊字符
实际工作环境中hive导出数据到Mysql,总是报错ncorrect string value: ‘\xF0\x9F\x98\x97\xF0\x9F…’这是因为hive表字段中存在特殊字符,但是mysql不支持。下面写udf函数过滤掉特殊字符:package com.huayong;import org.apache.commons.lang3.CharEncoding;impor...原创 2019-10-30 19:13:29 · 3748 阅读 · 0 评论 -
Hive:分区和分桶
简介为了对表进行合理的管理以及提高查询效率,Hive可以将表组织成“分区”。分区是表的部分列的集合,可以为频繁使用的数据建立分区,这样查找分区中的数据时就不需要扫描全表,这对于提高查找效率很有帮助。分区是一种根据“分区列”(partition column)的值对表进行粗略划分的机制。Hive中每个分区对应着表很多的子目录,将所有的数据按照分区列放入到不同的子目录中去。 为什么...转载 2018-09-15 17:17:43 · 330 阅读 · 0 评论 -
Hive:数据倾斜调优/解决方案总结
在做Shuffle阶段的优化过程中,遇 到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些 Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段 的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据...转载 2018-09-15 23:12:49 · 1524 阅读 · 0 评论 -
Hive:hive和关系型数据库的区别
1. 查询语言。由于 SQL 被广泛的应用在数据仓库中,因此,专门针对 Hive 的特性设计了类 SQL 的查询语言 HQL。熟悉 SQL 开发的开发者可以很方便的使用 Hive 进行开发。2. 数据存储位置。Hive 是建立在 Hadoop 之上的,所有 Hive 的数据都是存储在 HDFS 中的。而数据库则可以将数据保存在块设备或者本地文件系统中。3. 数据格式。Hive 中没有定义专...转载 2018-09-24 01:23:21 · 1384 阅读 · 0 评论 -
Hive:窗口函数
简介本文主要介绍hive中的窗口函数.hive中的窗口函数和sql中的窗口函数相类似,都是用来做一些数据分析类的工作,一般用于olap分析(在线分析处理)。概念我们都知道在sql中有一类函数叫做聚合函数,例如sum()、avg()、max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时我们想要既显示聚集前的数据,又要显示聚集后的数...转载 2018-09-20 00:01:35 · 48673 阅读 · 12 评论 -
Hive:自定义UDAF函数
关于Hive自定义函数UDF的相关信息,请参考博文《Hive之——UDF函数》用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么?Double ev...转载 2018-09-20 00:49:09 · 5343 阅读 · 0 评论