Hive基本操作

1. Hive中执行linux中的命令

!linux命令;

2. Hive中执行hdfs的操作

dfs -ls /;

3. Hive的模式

  • 本地模式

    • 开发阶段建议使用本地模式
    • set hive.exec.mode.local.auto=true;
  • 集群模式(默认)

    • 生产环境建议使用集群模式

4. Hive的访问

  • cli(命令行)
  • webui(很少用)
  • api

5. Hive中的常见操作

  • 查看数据库的列表
    • show databases;
  • 创建数据库
    • create database db1;
  • 显示当前使用的数据库
    • set hive.cli.print.current.db=true;
  • 删除数据库
    • drop database db1;

6. Hive中表的操作

  • 创建表

    • create table t1(id int,name string);
  • 删除表

    • drop table t1;
  • 增加列

    • alter table t1 add columns(age int);
  • 删除列(其实下面是错误的,不支持删除列)

    • alter table t1 drop cloumns(age)

7. 执行hive的脚本

  • 在linux中执行hive脚本

    • hive -f xxx.hql
  • 在hive中执行

    • source xxx.sql

8. Hive中的DQL

  • 给hive表添加数据
    • insert into t1 values(‘admin’,12)(不推荐使用);
    • 直接给hdfs中添加文件即可(不推荐使用) hdfs dfs -put users.csv /user/hive/warehouse/db1.db/t3(不推荐使用)
    • load data [local] inpath ‘/root/users.csv’ into table t3;(不推荐使用,但是开发阶段使用较多)

9. Hive中的复合数据类型

9.1 数组类型array

  • 数据格式

    admin,12,java1-python1-java

    admin1,11,java-python1-java

    admin2,312,java-python-java

  • 创建表

    • create table t4(name string,age int,loves array) row format delimited fields terminated by ‘,’ collection items terminated by ‘-’ lines terminated by ‘\n’ ;
  • 加载数据

    • load data local inpath ‘/root/users04.csv’ into table t4;
  • 查询array

select loves[0] from t4;

9.2 map类型

  • 数据格式

    小明,12,数学:20,男

    小红,21,数学:22,女

    大胖,25,数学:30,男

  • 创建表

    • create table t5(name string,age int,score map) row format delimited fields terminated by ‘,’ map keys terminated by ‘:’ lines terminated by ‘\n’
  • 加载数据

    • load data local inpath ‘/root/users05.csv’ into table t5;
  • 查询

select score['数学'] from t5;

9.3 struct类型(相当于给数组给定了名称)

  • 数据格式

    小明,10:男

    小花,10:女

    大胖,10:男

  • 创建表

    create table t6(name string ,info struct<age:int,sex:string>) row format delimited  fie
    lds terminated by ',' collection items  terminated  by ':';
    
  • 加载数据

    • load data local inpath ‘/root/users06.csv’ into table t6;
  • 查询

    • select info.age from t6;

你可能感兴趣的:(大数据)