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)

‘ 所谓成功 ’

坚持把简单的事情做好就是不简单

坚持把平凡的事情做好就是不平凡

每个人都有潜在的能量,只是很容易--

被习惯所掩盖,

被时间所迷离,

被惰性所消磨。

那么,成功呢?就是在平凡中做出不平凡的坚持

本文分享自微信公众号 - DataScience(DataScienceTeam),作者:Jack 风

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Day01| 第四期-北京积分落户数据分析

    今天是学长带你手把手做数据分析的第一个案例,2018年的北京积分落户数据分析,通过分析在北京通过积分落户方式的落户者的数据,为指导落户申请提供决策依据。

    DataScience
  • SpringBoot

    https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

    DataScience
  • SpringBoot简介

    https://martinfowler.com/articles/microservices.html#MicroservicesAndSoa

    DataScience
  • Mysql group by实现方式(一) - 临时表

    当MySQL Query Optimizer无法找到可以利用的合适索引时,就不得不先读取需要的数据,然后通过临时表来完成GROUP BY操作 例如 EXPLAI...

    dys
  • Mybatis【配置文件】

    映射文件 配置文件和映射文件还有挺多的属性我还没有讲的,现在就把它们一一补全 在mapper.xml文件中配置很多的sql语句,执行每个sql语句时,封装为Ma...

    Java3y
  • connect by超乎你想象

    SQL中的connect by主要用在层级关系的查询,乍看确实可能有些绕,但在某些场景下,确实方便,语法格式如下,

    bisal
  • Yii2 学习笔记之 GridView DetailView

    琯琯
  • Mybatis sql映射文件浅析 Mybatis简介(三)

    除了配置相关之外,另一个核心就是SQL映射,MyBatis 的真正强大也在于它的映射语句。

    noteless
  • 数据库表设计对性能的影响

    很多人看来,数据库Schema设计是一件非常简单的事情,大体按照系统设计时候的相关实体对象对应成一个一个表格就可以了。为了在功能上尽可能容易扩展,根据数据库范式...

    dys
  • Mybatid关联表查询

    一、一对一关联  1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负...

    汤高

扫码关注云+社区

领取腾讯云代金券