hive常见命令

xiaoxiao2021-02-28  117

hive 常见命令

$>!clear ; #清屏 $>!dfs -lsr / ; hive 执行dfs命令

1.查看所有数据库:

$>show databases ; 查看所有数据库 OK default Time taken: 1.693 seconds, Fetched: 1 row(s) 我们发现只有一个default库;于是我们使用default 数据库;

2.使用数据库:

hive> use default ; OK Time taken: 0.037 seconds

3.创建数据库:

hive> create database dailiang ; OK Time taken: 0.076 seconds hive> show databases ; OK dailiang default Time taken: 0.016 seconds, Fetched: 2 row(s)

4.删除数据库:

删除数据库的时候,不允许删除有数据的数据库,如果数据库里面有数据则会报错。如果要忽略这些内容,则在后面增加CASCADE关键字,则忽略报错,删除数据库。

hive> drop database dailiang cascade ; OK Time taken: 0.11 seconds

5.查看表数据:

直接查看表数据: hive> show tables in default ; OK ismassetinfo ismproinfo ismsecuinfo Time taken: 0.017 seconds, Fetched: 3 row(s) 或者直接使用 use 数据库; show tables ; 也可以使用正则表达数来看表数据 show tables like 'is*'

6.查看表数据

select * from ismproinfo ;

7.创建一个表

create table `dailiang_test`( name string , age int , sex string ,status string ) ;

8.查看表结构

hive> desc dailiang_test ; OK name string age int sex string status string Time taken: 0.046 seconds, Fetched: 4 row(s)

9 .查看建表语句

hive> show create table dailiang_test ; OK CREATE TABLE `dailiang_test`( `name` string, `age` int, `sex` string, `status` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 'hdfs://ns-upid/user/hive/warehouse/dailiang.db/dailiang_test' TBLPROPERTIES ( 'transient_lastDdlTime'='1501812307') Time taken: 0.046 seconds, Fetched: 15 row(s)

10.生产环境查看建表语句

hive> show create table ismproinfo ; OK CREATE TABLE `ismproinfo`( `hash` string, `innercode` string, `secucode` string, `ismcode` bigint, `propabegindate` string, `propaenddate` string, `raisebegindate` string, `raiseenddate` string, `prorundate` string, `prostopdate` string, `maxstoresum` float, `mininvestshare` float, `acreturn` float, `expreturn` float, `levelrisk` smallint, `createtime` string, `status` smallint, `slicecycle` smallint, `risknum` float, `classnum` smallint, `stocknum` smallint, `signum` smallint) PARTITIONED BY ( `dt` string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 'hdfs://ns-upid/user/hive/warehouse/ismproinfo' TBLPROPERTIES ( 'transient_lastDdlTime'='1476858329') Time taken: 0.209 seconds, Fetched: 35 row(s)

hive 导出数据

导出hive 数据到本地目录

首先在本地创建目录:

mkdir /hive_shuju cd /hive_shuju touch a.txt echo 123 > a.txt

以下内容可以在hive中通过hive 的 shell命令进行查看

hive> !ls /hive_shuju; a.txt hive> !cat /hive_shuju/a.txt; 123

导出命令:(生产环境例子)

hive> insert overwrite local directory '/hive_shuju' select * from ismsecuinfo; 进入/hive_shuju目录: 发现多了好多文件: 000000_0 000002_0 000004_0 000006_0 000008_0 000010_0 000012_0 000014_0 000016_0 000018_0 000020_0 000001_0 000003_0 000005_0 000007_0 000009_0 000011_0 000013_0 000015_0 000017_0 000019_0

(ismsecuinfo 是个hive表,/hive_shuju 是linux 操作系统的一个目录)

注释: 一个或多个文件会被写入到/hive_shuju,具体个数取决于reducer的个数。 不管在源表中数据实际是怎么存储的,hive会将所有的字段序列化成字符串写入到文件中。

转载请注明原文地址: https://www.6miu.com/read-48781.html

最新回复(0)