问题导读:
1.如何查看hive表结构?
2.如何查看表结构信息?
3.如何查看分区信息?
4.哪个命令可以模糊搜索表
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_58315
12.hive-wui路径
http://172.17.41.38/jobtracker.jsp
13.删除分区
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.sql
15.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)
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.log
19.查看perl进程
ps -ef|grep perl
20.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;
24.hive官网网址
https://cwiki.apache.org/conflue ... ionandConfiguration
http://www.360doc.com/content/12/0111/11/7362_178698714.shtml
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
相关推荐
2. **检查分区信息**:可以通过多种方式来查看Hive表的分区信息,包括使用命令`SHOW PARTITIONS test;`或者通过Hadoop的Web界面查看具体的HDFS路径。这里推荐使用Web界面,因为它可以更直观地展示分区信息。 #### ...
表结构包括`exchange`、`symbol`、`ymd`、`price_open`、`price_high`、`price_low`、`price_close`、`volume`和`price_adj_close`等字段,数据类型分别为字符串、字符串、字符串、浮点型、浮点型、浮点型、浮点型、...
本篇文章将深入探讨如何使用Spark 2.1的API操作Hive表,并通过源码分析来理解其内部机制。 首先,我们需要在Spark中配置Hive的相关信息,包括Hive的元数据存储位置、Hive的配置文件路径等。这通常在创建...
- **背景**:Hive不支持直接向表中插入数据,但可以通过创建一个新表并将查询结果插入到新表中。 - **示例**:假设要将表`t1`的数据插入到新表`new_table`中: ```sql CREATE TABLE new_table AS SELECT * FROM ...
因此,在从MySQL到Hive的数据迁移过程中,我们需要根据Hive的数据模型来设计Hive表结构。 `AutoCreateTable`这个工具或者脚本的作用就是自动化这个过程。用户只需提供MySQL的表名,该工具就能自动分析MySQL表的结构...
使用`ALTER TABLE`可以修改已存在的表结构,比如添加、删除或更改列。 6. **删除表**: `DROP TABLE`语句用于删除表。内部表的删除会同时移除数据和元数据,而外部表只移除元数据,数据保持不变。 7. **加载数据...
3. 导入数据到`stocks`表,这是通过LOAD DATA命令实现的,将csv文件的数据加载到Hive表中。 4. 创建未分区的外部表`dividends_unpartitioned`,然后从csv文件导入数据。外部表的元数据由Hive管理,但数据本身的位置...
Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。它将SQL语句转换为MapReduce任务在Hadoop集群上执行,非常适合大数据分析。 2. **Java与Hive的连接**: 要...
本文档将详细介绍Hive的基本操作命令,从创建表、加载数据、查询数据到数据管理等方面进行整理。 创建表 Hive提供了多种方式创建表,例如: * 创建一个简单的表:`CREATE TABLE pokes (foo INT, bar STRING);` * ...
Hue提供了一个友好的图形界面来查看和管理Hive表中的数据。一旦创建好外部表后,可以通过Hue来直观地查看表结构及数据内容。 1. **启动Hue**:确保Hue服务已启动并可通过Web浏览器访问。 2. **打开Hive模块**:在...
1. **配置Spark连接Hive**:在Spark中,需要设置`hive.metastore.uris`等相关配置,以连接到Hive Metastore,获取Hive表的信息。 2. **读取Hive表**:使用Spark SQL的`spark.read.format("hive").load()`语句加载...
以上就是关于Hive基本命令操作的一些核心知识点,包括创建表、查看表结构、数据加载以及查询等。在实际操作中,根据业务需求选择合适的数据模型(如分区表)并正确地管理数据,能够极大地提高数据处理的效率和便利性...
1. **Hive简介**:Hadoop Hive是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,使得开发者能够通过SQL语句对大数据进行分析处理。Hive 1.2版本是一个较早但仍然广泛...
通过上述分析可以看出,对于“Spark或MR引擎插入的数据,Hive表查询数据为0”的问题,主要是因为Tez引擎在执行`UNION ALL`操作时生成了额外的子目录,而查询引擎未能正确处理这些子目录。通过改变数据写入方式或是...
Apache Hive 是一个数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供简单的类 SQL 查询功能。它可以将类 SQL 的语法转换为 MapReduce 任务运行。Hive 可以对数据进行查询、过滤、合并等操作,并...
2. **HQL**:Hive的查询语言,其语法类似SQL,但有一些限制,如不支持事务、子查询等功能。HQL可以用来创建表、加载数据、查询数据以及进行数据转换和处理。 3. **Hive Driver**:负责解析HQL,生成执行计划,并...
2. 查看表结构信息:使用`desc table_name;`语句可以查看表的结构信息。 3. 查看分区信息:使用`show partitions table_name;`语句可以查看表的分区信息。 二、数据查询 1. 根据分区查询数据:使用`select table_...
在实际操作中,我们可能会使用Hive进行ETL(Extract, Transform, Load)过程,从原始数据中抽取、转换并加载到Hive表中。然后通过HQL进行数据探索、统计分析、报表生成等任务。此外,Hive还支持与其他大数据组件如...
Spark与Hive的集成允许我们直接操作Hive表,将Hive数据转换为Spark DataFrame,这样就可以利用Spark的并行计算能力进行数据预处理和转换。 3. **数据转换**: 在从Hive加载数据到Spark后,可能需要对数据进行清洗...