HiveQL整理总结
hive> set hive.fetch.task.conversion=more;
<property><name>hive.fetch.task.conversion</name><value>more</value><description>Some select queries can be converted to single FETCH task minimizing latency.Currently the query should be single sourced not having any subquery and should not haveany aggregations or distincts (which incurrs RS), lateral views and joins.1. minimal : SELECT STAR, FILTER on partition columns, LIMIT only2. more : SELECT, FILTER, LIMIT only (+TABLESAMPLE, virtual columns)</description></property>
直接连接hiveserver2 服务, 使用zk链接进行负载
<property>
<name>hive.metastore.uris</name>
<value>thrift://a06-r12-i32-122.jd.local:9083,thrift://a06-r12-i32-119.jd.local:9083,thrift://a06-r12-i11-24.jd.local:9083,thrift://a06-r12-i11-25.jd.local:9083</value>
</property>
报错:FAILED: SemanticException Column user_log_acct Found in more than One Tables/Subqueries 同一个字段不能出现在
ROW_NUMBER() OVER函数的基本用法(hiveQL语法)
Select *,row_number() OVER (PARTITION BY COL1 ORDER BY COL2 DESC)
源表temp_user_simularity结构: (user1,user2,ratings)源表dim_user2结构:(usrid,name)目标表temp_sim_user_map结构:(user1Name,user2Name,user1ID,user2ID)思路:user1Name字段要join一次,user2Name字段要join一次。
create table tmp.temp_sim_user_map as
select usr1.name as user1,usr2.name as user2,usr1.usrid as user1ID,usr2.usrid as user2IDfrom tmp.temp_user_simularity aleft join tmp.dim_user2 usr1on usr1.usrid=a.user1left join tmp.dim_user2 usr2on usr2.usrid=a.user2
select spu_name,count( distinct user_log_acct) from tmp.nonzhuxian_items group by spu_name
hive -e "select regexp_replace(a,'\t+|,+','-'),b,countab,counta,confidenceab,supporta,lift from tmp.zhuxian_prefixt_ab" | awk -F '\t' '{print $1","$2","$3","$4","$5","$6","$7}'>>zhuxian_prefix_ab.csv
a) 假设input目录下有1个文件a,大小为780M,那么hadoop会将该文件a分隔成7个块(6个128m的块和1个12m的块),从而产生7个map数
b) 假设input目录下有3个文件a,b,c,大小分别为10m,20m,130m,那么hadoop会分隔成4个块(10m,20m,128m,2m),从而产生4个map数
即,如果文件大于块大小(128m),那么会拆分,如果小于块大小,则把该文件当成一个块。
答案也是不一定。比如有一个127m的文件,正常会用一个map去完成,但这个文件只有一个或者两个小字段,却有几千万的记录,如果map处理的逻辑比较复杂,用一个map任务去做,肯定也比较耗时。针对上面的问题3和4,我们需要采取两种方式来解决:即减少map数和增加map数;
reduce个数的设定极大影响任务执行效率,不指定reduce个数的情况下,Hive会猜测确定一个reduce个数,基于以下两个设定:hive.exec.reducers.bytes.per.reducer(每个reduce任务处理的数据量,默认为1000^3=1G)hive.exec.reducers.max(每个任务最大的reduce数,默认为999)计算reducer数的公式很简单N=min(参数2,总输入数据量/参数1)即,如果reduce的输入(map的输出)总大小不超过1G,那么只会有一个reduce任务;
表app.userprofile是一个包含561168636条数据的大表,gdm_m04_ord_det_sum是包含1344346条数据的表,要将userprofile中包含后者中的id的数据取出来:
select a.* from app.userprofile ajoin (select user_log_acct from gdm.gdm_m04_ord_det_sum where month(dt)=7 group by user_log_acct) bon a.user_log_acct=b.user_log_acct and a.dt='2016-10-12'实际上,下面要比上面快很多(先将子查询的数据写到表里,然后再join):val glasses_users = hiveContext.sql("select user_log_acct from gdm.gdm_m04_ord_det_sum where item_third_cate_name like '%太阳镜%' and month(dt)=7 group by user_log_acct")glasses_users.write.saveAsTable("tmp2.glasses_users")val glasses_users_portrait = hiveContext.sql("select a.* from app.app_ba_userprofile_prop_api_mkt_sub a join tmp2.glasses_users b on a.user_log_acct=b.user_log_acct and a.dt='2016-10-12'")glasses_users_portrait.write.saveAsTable("tmp2.glasses_user_portrait")
要用小表去join大表:
select b.* from tmp2.glasses_users a join app.app_ba_userprofile_prop_api_mkt_sub b on a.user_log_acct=b.user_log_acct and b.dt='2016-10-12'
HiveQL整理总结相关推荐
- hive load data外部表报错_从0开始学大数据-Hive基础篇
Hive起源于Facebook,是基于 Hadoop HDFS 分布式文件系统的分布式 数据仓库 架构.它为数据仓库的管理提供了许多功能:数据ETL(抽取.转换和加载)工具.数据存储管理和大型数据集的 ...
- HiveQL基本操作整理
1. 创建操作 1.1 创建表 CREATE TABLE pokes (foo INT, bar STRING); 1.2 基于现有的表结构创建一个新表 create table new_table ...
- HiveQL学习笔记(四):Hive窗口函数
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
- HiveQL学习笔记(五):Hive练习题
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
- HiveQL学习笔记(三):Hive表连接
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
- HiveQL学习笔记(二):Hive基础语法与常用函数
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
- HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介
本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...
- 【大数据处理技术】期末复习整理
所用教材:<大数据技术原理与应用--概念.存储.处理.分析与应用(第2版)>,由厦门大学计算机科学系林子雨编著. 教材官网:http://dblab.xmu.edu.cn/post/big ...
- Impala原理简单整理
个人整理汇总仅供参考,百分之九十都是抄袭过来的,有兴趣可以看原文连接 相关文档: impala 概述_w3cschool Impala教程 - 芒果文档 impala的架构_12892538的技术博客 ...
- Map再整理,从底层源码探究HashMap
前言 本文为对Map集合的再一次整理.内容包括:Map HashMap LinkedHashMap TreeHashMap HashTable ConcurrentHashMap Map Map< ...
最新文章
- Silverlight技术支持谷歌Android
- tabBar 自定义,小程序自定义底部导航栏
- Matlab数据的可视化 -- 简易线性函数图
- 佳能80d有人脸识别吗_国家地理2020年旅行者最推荐相机Top10,有你喜欢的吗?
- ARM内核及其设备树编译
- springboot项目不输出nohup.out日志
- vs2008 下编译jrtplib-3.9.0成功
- Solr查询参数sort(排序)
- 的文件夹结构_小白指南:WordPress文件及目录结构解析
- 最简单的基于FFmpeg的移动端例子:Windows Phone HelloWorld
- Win11画图工具没了怎么重新安装
- 仿节奏大师java_HelloCpp 仿节奏大师Android游戏版本,只实现了击键功能,可以给大家启发. 238万源代码下载- www.pudn.com...
- Bithumb Global AMA丨Cred加速实现开放金融-打造区块链上蚂蚁金服
- MATLAB 图像嵌入水印图像程序
- Oracle查询出第N高薪水的值
- PAT甲级 1042 Shuffling Machine 模拟洗牌 map的使用
- 请告诉我IT行业缺少怎样的人
- mysql当前读和一致性读_数据库 一致性读当前读
- 武汉理工校训计算机工程学,"厚德博学,追求卓越"武汉理工大学校训
- spotify怎么设置头像_如何使Spotify停止发布到Facebook(和其他隐私设置)