![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hive
我是A_lin呀
勤于思,敏于行,善于言。
展开
-
Hive bigint类型和string类型关联可能导致数据异常
在hive中,两个表进行join,on条件两表的字段含义一致(都是整数),但数据类型不一致:string和bigint。join后发现如果数值过大则匹配的记录会出现问题:一条记录会匹配出多条记录(explain可以发现都转换为double)如:190000000002778025,就会错误的匹配上*8023 ,*8025a)原因:Java中精度只有15至16位,当数据超过精度就会不准——也就会出现超过精度的记录join上许多不一致的记录。bigint和string比较时会隐式地都转换成doubl转载 2022-03-29 21:10:45 · 3282 阅读 · 0 评论 -
hive sql 多字段关联注意
多个关联键 需要注意只要其中一个字段为null 整个记录是关联不上的。如果需要关联上,要nvl或coalesce处理下。select * from (select 1 as id1,null as id2,3 as x) as a left join (select 1 as id1,null as id2,4 as y) as b on a.id1=b.id1 and a.id2=b.id2select * from (select 1 as id1,null.原创 2022-01-21 17:58:36 · 2469 阅读 · 0 评论 -
Hive on Spark 小文件问题
总所周知,hadoop namenode会对hdfs上的每个文件在内存中都会维护一份元数据信息。如果集群产生大量小文件而不处理,长期下去,必将给namenode造成巨大压力。同时,对于hive,spark计算时,小文件意味着需要更多的task和资源,影响计算速度,同样也可能将节点弄挂掉。因此,小文件问题,需要引起重视,在日常开发和日常监控中需要额外注意。Hive on Spark 关闭hive.merge.sparkfiles,shuffle会产生大量小文件,因此写入hdfs存在小文件问..原创 2021-12-30 19:59:09 · 3002 阅读 · 0 评论 -
hive函数get_json_object不支持含特殊字符的key
hive函数get_json_object不支持含特殊字符的key。例如,解析的json的key中包含’.‘,'@','#'等特殊字符。直接解析的话,结果为null。 select get_json_object(a.json,'$.ro\.boot\.serialn')asrbs--null 不支持转义 ,get_json_object(a.json,'$.\@serialNo')assn--null 不支持转义 ,get_json_object...原创 2021-11-22 18:47:56 · 4347 阅读 · 2 评论 -
纯真ip地址库解析hive udf实现
纯真ip地址库解析hive udf实现纯真IP地址库qqwry.dat解析代码https://github.com/difeng/qqwryhive udf实现,基于上述代码实现。利用该udf函数,方便做数据分析。pom.xml中添加hive,hadoop相关依赖<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifac原创 2020-08-20 15:38:31 · 754 阅读 · 0 评论 -
case when 配合 lateral view explode 实现不同维度指标的共同展示
select b.types,sum(show) as show ,sum(click) as click,sum(finish) as finishfrom ( select case when action = 'b_click' then '一' when action = 'c_click' then '二' when action = 'd_finish' then '三' when action = 'a' then '一,.原创 2020-07-10 18:20:42 · 407 阅读 · 0 评论 -
shell脚本的方式批量导出hive建表语句
最近遇到的一个工作任务。由于公司集群不支持使用hive命令,只能使用beeline命令。通过beeline -e 或 beeline -f 导出的结果,会包含一些其他多余的信息,不好过滤。同时beeline -e 只能跟一条sql语句。于是使用spark-sql来完成脚本编写。第一版spark-sql -e "use test ; show tables;" > table...原创 2019-03-22 16:19:21 · 3461 阅读 · 4 评论 -
hive2.3.4配置
将hive从1.2.0升级到2.3.4;下载,解压就忽略了,主要是配置,和原来hive的环境变量一定要记得修改. cp hive-log4j2.properties.template hive-log4j2.properties cp hive-default.xml.template hive-site.xml vim hive-site.xml或者用everEdit...原创 2019-03-04 23:07:43 · 794 阅读 · 0 评论 -
启动hive,提示ls: 无法访问/home/software/spark-2.0.1-bin-hadoop2.7/lib/spark-assembly-*.jar: 没有那个文件或目录
[root@hadoop03 bin]# hivels: 无法访问/home/software/spark-2.0.1-bin-hadoop2.7/lib/spark-assembly-*.jar: 没有那个文件或目录原因是: spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,...转载 2019-02-17 20:45:12 · 5150 阅读 · 3 评论 -
hiveserver2和metastore
大部分内容转载: https://blog.csdn.net/qq_40990732/article/details/80914873 https://blog.csdn.net/tp15868352616/article/details/80891057 https://blog.csdn.net/qq_35440040/article/details/824...转载 2019-02-16 21:13:12 · 5782 阅读 · 4 评论 -
hive beeline的使用
./beeline -u jdbc:hive2://hadoop03:10000 -n root -p root 不用每次都跟-u ,可以编辑beeline修改. "$bin"/hive --service beeline "$@"为:. "$bin"/hive --service beeline -u jdbc:hive2://hadoop03:10000 "$@"保存以后,每次直接...原创 2019-02-16 16:32:52 · 1660 阅读 · 0 评论 -
hive实现两列数据合并成一列
hive中源表数据:name(string) gender(String)lcl nanhaa nanddd nv实现如下结果:lclnanhaanandddnvhql中使用union all 即可实现:select name from tab1 union all select gender as name from tab1;...原创 2018-12-29 23:48:26 · 14275 阅读 · 1 评论