hive sql语法 - 浮云飘飘的个人空间 - OSCHINA - 中文开源技术交流社区


本站和网页 https://my.oschina.net/u/1458120/blog/624856 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

hive sql语法 - 浮云飘飘的个人空间 - OSCHINA - 中文开源技术交流社区
首页
资讯
摸鱼
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
2022年度评选
Tool
博客
Gitee
首页
资讯
摸鱼
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
2022年度评选
Tool
博客
Gitee
OSCHINA 小程序 —— 关注技术领域的头条文章
聚合全网技术文章,根据你的阅读喜好进行个性推荐
登录
注册
开源博客
写博客
浮云飘飘的个人空间
hive
正文
hive sql语法
浮云飘飘
hive
2016/02/26 15:39
阅读数 2.5K
#hive的python 连接
import pyhs2
conn=pyhs2.connect(host=HIVE_CONFIG["host"],port=HIVE_CONFIG["port"],authMechanism="PLAIN",user="hdfs")
def run_hive_query(sql):
with conn.cursor() as cursor:
cursor.execute(sql)
return cursor.fetchall()
1.hive模糊搜索表
show tables like '*name*';2.查看表结构信息 desc formatted table_name; desc table_name;3.查看分区信息 show partitions table_name;4.根据分区查询数据 select table_coulm from table_name where partition_name = '2014-02-25';5.查看hdfs文件信息 dfs -ls /user/hive/warehouse/table02;6.从文件加载数据进表(OVERWRITE覆盖,追加不需要OVERWRITE关键字) LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config; --从查询语句给table插入数据 INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select * from stage.s_h02_click_log where dt='2014-01-22' limit 100;7.导出数据到文件 insert overwrite directory '/tmp/csl_rule_cfg' select a.* from dim.dim_csl_rule_config a; hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"> /home/jrjt/testan/baitiao.dat;8.自定义udf函数 1.继承UDF类 2.重写evaluate方法 3.把项目打成jar包 4.hive中执行命令add jar /home/jrjt/dwetl/PUB/UDF/udf/GetProperty.jar; 5.创建函数create temporary function get_pro as 'jd.Get_Property'//jd.jd.Get_Property为类路径;9.查询显示列名 及 行转列显示 set hive.cli.print.header=true; // 打印列名 set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能 set hive.cli.print.row.to.vertical.num=1; // 设置每行显示的列数10.查看表文件大小,下载文件到某个目录,显示多少行到某个文件 dfs -du hdfs://BJYZH3-HD-JRJT-4137.jd.com:54310/user/jrjt/warehouse/stage.db/s_h02_click_log; dfs -get /user/jrjt/warehouse/ods.db/o_h02_click_log_i_new/dt=2014-01-21/000212_0 /home/jrjt/testan/; head -n 1000 文件名 > 文件名11.杀死某个任务 不在hive shell中执行 hadoop job -kill job_201403041453_5831512.hive-wui路径 http://172.17.41.38/jobtracker.jsp13.删除分区 alter table tmp_h02_click_log_baitiao drop partition(dt='2014-03-01'); alter table d_h02_click_log_basic_d_fact drop partition(dt='2014-01-17');14.hive命令行操作 执行一个查询,在终端上显示mapreduce的进度,执行完毕后,最后把查询结果输出到终端上,接着hive进程退出,不会进入交互模式。 hive -e 'select table_cloum from table' -S,终端上的输出不会有mapreduce的进度,执行完毕,只会把查询结果输出到终端上。这个静音模式很实用,,通过第三方程序调用,第三方程序通过hive的标准输出获取结果集。 hive -S -e 'select table_cloum from table' 执行sql文件 hive -f hive_sql.sql15.hive上操作hadoop文件基本命令 查看文件大小 dfs -du /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15; 删除文件 dfs -rm /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15;16.插入数据sql、导出数据sql 1.insert 语法格式为: 基本的插入语法: INSERT OVERWRITE TABLE tablename [PARTITON(partcol1=val1,partclo2=val2)]select_statement FROM from_statement insert overwrite table test_insert select * from test_table; 对多个表进行插入操作: FROM fromstatte INSERT OVERWRITE TABLE tablename1 [PARTITON(partcol1=val1,partclo2=val2)]select_statement1 INSERT OVERWRITE TABLE tablename2 [PARTITON(partcol1=val1,partclo2=val2)]select_statement2 from test_table insert overwrite table test_insert1 select key insert overwrite table test_insert2 select value; insert的时候,from子句即可以放在select 子句后面,也可以放在 insert子句前面。 hive不支持用insert语句一条一条的进行插入操作,也不支持update操作。数据是以load的方式加载到建立好的表中。数据一旦导入就不可以修改。 2.通过查询将数据保存到filesystem INSERT OVERWRITE [LOCAL] DIRECTORY directory SELECT.... FROM ..... 导入数据到本地目录: insert overwrite local directory '/home/zhangxin/hive' select * from test_insert1; 产生的文件会覆盖指定目录中的其他文件,即将目录中已经存在的文件进行删除。 导出数据到HDFS中: insert overwrite directory '/user/zhangxin/export_test' select value from test_table; 同一个查询结果可以同时插入到多个表或者多个目录中: from test_insert1 insert overwrite local directory '/home/zhangxin/hive' select * insert overwrite directory '/user/zhangxin/export_test' select value;17.mapjoin的使用 应用场景:1.关联操作中有一张表非常小 2.不等值的链接操作 select /*+ mapjoin(A)*/ f.a,f.b from A t join B f on ( f.a=t.a and f.ftime=20110802)
Join查找操作的基本原则:应该将条目少的表/子查询放在 Join 操作符的左边。原因是在 Join 操作的 Reduce 阶段,位于 Join 操作符左边的表的内容会被加载进内存,将条目少的表放在左边,可以有效减少发生内存溢出错误的几率。
由于join操作是在where操作之前执行,所以当你在执行join时,where条件并不能起到减少join数据的作用;案例:
SELECT a.val, b.val FROM a LEFT OUTER JOIN b ON (a.key=b.key)
WHERE a.ds='2009-07-07' AND b.ds='2009-07-07'
最好修改为:
SELECT a.val, b.val FROM a LEFT OUTER JOIN b
ON (a.key=b.key AND b.ds='2009-07-07' AND a.ds='2009-07-07')
18.perl启动任务 perl /home/jrjt/dwetl/APP/APP/A_H02_CLICK_LOG_CREDIT_USER/bin/a_h02_click_log_credit_user.pl APP_A_H02_CLICK_LOG_CREDIT_USER_20140215.dir >& /home/jrjt/dwetl/LOG/APP/20140306/a_h02_click_log_credit_user.pl.4.log19.查看perl进程 ps -ef|grep perl20.hive命令移动表数据到另外一张表目录下并添加分区 dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-18 /user/jrjt/warehouse/ods.db/o_h02_click_log/; dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log_baitiao/* /user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/;--复制所有分区数据 alter table d_h02_click_log_baitiao_basic_d_fact add partition(dt='2014-03-11') location '/user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/dt=2014-03-11';21.导出白条数据 hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id like '2014-03%';"> /home/jrjt/testan/baitiao.xlsx;22.hive修改表名 ALTER TABLE o_h02_click_log_i RENAME TO o_h02_click_log_i_bk;23.hive复制表结构 CREATE TABLE d_h02_click_log_baitiao_ag_sum LIKE tmp.tmp_h02_click_log_baitiao_ag_sum;25.hive添加字段 alter table tmp_h02_click_log_baitiao_ag_sum add columns(current_session_timelenth_count bigint comment '页面停留总时长'); ALTER TABLE tmp_h02_click_log_baitiao CHANGE current_session_timelenth current_session_timelenth bigint comment '当前会话停留时间';26.hive开启简单模式不启用mr set hive.fetch.task.conversion=more;27.以json格式输出执行语句会读取的input table和input partition信息 Explain dependency query
展开阅读全文
本文转载自:http://www.aboutyun.com/forum.php?mod=viewthread&tid=8590&highlight=hive
举报
加载中
点击引领话题📣
取消
发布
0" class="recommend-box">
作者的其它热门文章
{{formatHtml(o.title)}}
打赏
1 赞
0 收藏
微信
QQ
微博
分享
关于作者
浮云飘飘
关注
私信
提问
文章
152
经验值
89
粉丝
23
关注
作者的专辑
全部
python(33)
linux服务器例子(21)
solr(6)
linux基础(7)
源创计划
立即入驻
自媒体入驻开源社区,
获百万流量,打造个人技术品牌
推荐关注
换一批
Authing
文章 54
访问 8.3W
YangYxd
开源软件作者
雪饼
文章 62
访问 608.5W
ccww_
文章 123
访问 16.3W
12叔
文章 42
访问 16.9W
打赏
0 评论
0 收藏
1 赞
微信
QQ
微博
分享
选择专区和圈子:{{title}}
{{o.name}}
{{m.name}}
取消
确定
OSCHINA 社区
关于我们
联系我们
加入我们
合作伙伴
Open API
在线工具
Gitee.com
企业研发管理
CopyCat-代码克隆检测
实用在线工具
国家反诈中心APP下载
攻略
项目运营
Awesome 软件(持续更新中)
QQ群
530688128
公众号
视频号
OSCHINA 小程序
聚合全网技术文章,根据你的阅读喜好进行个性推荐
OSC小程序
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
社区规范
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部