Hive-基础
Posted AI大数据与机器学习
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive-基础相关的知识,希望对你有一定的参考价值。
生活
就是一系列下定决心的努力
· 正 · 文 · 来 · 啦 ·
Apache Hive 基础操作
数据库
库选择:use 库名;
创建数据库:create basedata 库名;
删除数据库:drop basedata 库名; #注意库中没有表或者无数据才可以删除!
hive 暂不支持数据库重命名操作。
1.用户可以使用 ALTER DATABASE 命令来为某个数据库的
DBPROPERTIES设置键-值对属性值,来描述这个数据库的属性信息。
EG:
ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...);
2. 也可以使用该命令修改数据库的用户或权限;
ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role;
3.但是数据库的其他元数据信息都是不可以更改的,包括数据库名和数据库所在的目录位置。
2)查看库下面的表:show tables;
具体表字段:desc 表名;
具体表信息:desc formatted 表名;
案例 首先我们创建一个文件,一个表。
vim user.txt
很多情况不允许直接存id 的,我们对第一列 进行MD5加密 (用法)
python md5.py inputfile colnum > outputfile
[root@Master Aidata]# python md5.py user.txt 1 >id.txt
[root@Master Aidata]# cat id.txt
A 18 7fc56270e7a70fa81a5935b72eacbe29
B 15 9d5ed678fe57bcca610140957afab571
C 16 0d61f8370cad1d412f80b84d143e1257
D 21 f623e75af30e62bbd73d6df5b50bb7b5
E 22 3a3ea00cfc35332cedf6e5e9a32e94da
[root@Master Aidata]#
创建一个Aidata 数据库 & Hive 表(普通表)
hive> show databases;
OK
default
Time taken: 0.023 seconds, Fetched: 1 row(s)
hive> create database aidata;
OK
Time taken: 0.576 seconds
hive> use aidata;
OK
Time taken: 0.105 seconds
#创建hive 表
hive> create table userprofile (id int, age int, user_id string)
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS TEXTFILE;
OK
Time taken: 0.671 seconds
数据源:
[root@Master Aidata]# pwd
/root/Aidata
[root@Master Aidata]# cat id.txt
A 18 7fc56270e7a70fa81a5935b72eacbe29
B 15 9d5ed678fe57bcca610140957afab571
C 16 0d61f8370cad1d412f80b84d143e1257
D 21 f623e75af30e62bbd73d6df5b50bb7b5
E 22 3a3ea00cfc35332cedf6e5e9a32e94da
导入数据:
hive> load data local inpath '/root/Aidata/id.txt' into table
> userprofile;
Loading data to table aidata.userprofile
Table aidata.userprofile stats: [numFiles=1, numRows=0, totalSize=190, rawDataSize=0]
OK
Time taken: 0.868 seconds
查询表数据:
hive> select * from userprofile;
OK
NULL 18 7fc56270e7a70fa81a5935b72eacbe29
NULL 15 9d5ed678fe57bcca610140957afab571
NULL 16 0d61f8370cad1d412f80b84d143e1257
NULL 21 f623e75af30e62bbd73d6df5b50bb7b5
NULL 22 3a3ea00cfc35332cedf6e5e9a32e94da
Time taken: 0.652 seconds, Fetched: 5 row(s)
咦,怎么第一列木有了呢?
原因呢?就是我们建表的时候不小心将表中的字段类型写错。
不是还有骚操作吗?
But,Hive 中不支持Int 转化String 类型。
hive> select (cast(cast(id as int) as string)) from userprofile;
OK
NULL
NULL
NULL
NULL
NULL
Time taken: 0.125 seconds, Fetched: 5 row(s)
hive> desc userprofile;
OK
id int
age int
user_id string
删除表:
hive> drop table userprofile;
OK
Time taken: 0.526 seconds
重新更改创建表并且导入数据:(切记字段类型)
hive> create table userprofile (id string, age int, user_id string)
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS TEXTFILE;
OK
Time taken: 0.23 seconds
hive> load data local inpath '/root/Aidata/id.txt' into table
> userprofile;
Loading data to table aidata.userprofile
Table aidata.userprofile stats: [numFiles=1, numRows=0, totalSize=190, rawDataSize=0]
OK
Time taken: 0.412 seconds
hive> select * from userprofile;
OK
A 18 7fc56270e7a70fa81a5935b72eacbe29
B 15 9d5ed678fe57bcca610140957afab571
C 16 0d61f8370cad1d412f80b84d143e1257
D 21 f623e75af30e62bbd73d6df5b50bb7b5
E 22 3a3ea00cfc35332cedf6e5e9a32e94da
Time taken: 0.13 seconds, Fetched: 5 row(s)
坚持把简单的事情做好就是不简单,
坚持把平凡的事情做好就是不平凡。
每个人都有潜在的能量,只是很容易--
被习惯所掩盖,
被时间所迷离,
被惰性所消磨。
那么,成功呢?就是在平凡中做出不平凡的坚持。
期待您的进步
▽
以上是关于Hive-基础的主要内容,如果未能解决你的问题,请参考以下文章