hive 模块二

启动虚拟环境——>打开xshell

输入start-all.sh       启动所有Hadoop服务

输入jps                   查看hadoop所有服务是否正常启动(共6项服务)

输入ls /                   查看指定目录下所有文件,/代表根目录

输入cd /opt             进入opt目录

输入ls                     查看opt目录下所有文件

输入cd module       进入module目录

输入ls

输入cd apache-hive.3.1.1-bin/   进入apache

输入hive                  进入hive环境

 

2.2 DDL语言

2.2.2 创建表——数据类型

hive 模块二

 

 

 show databases;    -- 查看所有数据库

create database lagou;         --创建lagou数据库

show databases;          --查看所有数据库

use lagou;                   --进入lagou数据库

show tables;           --查看该数据库下的表

create table 表名(id int,name string);      --创建一个表

show create table 表名;          --查看建表信息

desc  表名;          --查看表结构

 

浏览器输入

http://192.168.5.100:50070/explorer.html#/user/hive/warehouse/lagou.db/test_create_table

选择utilities——>browse the file system查看刚才出创建的数据库和表

hive 模块二

 

 

 

hive 模块二

 

 

 insert into向表中插入一条数据

select * from 表  --查看表中的数据

再刷新浏览器,就会出现刚才插入的记录

 

创建外部表:关键字——external

hive 模块二

 

 

 create external talbe text_external_1(id int,name string) location '/datas/test_external_1'

路径必须加引号。如果未指定路径,该外部数据库与text_create_table在同一位置下。路径的最后的名称最好与数据库名一致,否则HDFS环境与hive中的名字会不一致。

去浏览器中查看可以看到datas目录下有text_external_1表

hive 模块二

 

 

 hive 模块二

 

 

 向该外部表中插入一条数据并查看hive 模块二

 

like复制表结构,不复制数据

hive 模块二

 

 

 

 

comment为表或字段增加描述

 

hive 模块二

 

 

 查询建表法——create [external] table 表名 as select 语句;            复制表结构+数据hive 模块二

 

 

2.2.3 创建表——分隔符

(1)字段(fields)分隔符

语法:fields terminated by '\t'

-- 设置字段分隔符

 

create table test_delimit(id int,name string) row format delimited fields terminated by '^B';

-- 查看字段分隔符

desc formatted test_delimit;

hive 模块二

 

 

(2)数组array类型成员分隔符

语法:collection items terminated by ','

-- 指定|为字段分隔符,,为数据分隔符
create table sales_info(
                                 sku_id string comment '商品id',
                                 sku_name string comment '商品名称',
                                 id_array array<string> comment '商品相关id列表')
row format delimited fields terminated by '|'
collection items terminated by ',';

 

装载数据

load data local inpath '/home/hadoop/datas/data1.txt' overwrite into tablesales_info;

  

(3)map字典的key-value分隔符

语法:map keys terminated by ':';

先在hive中创建好表结构

create table mapkeys(
sku_id string comment '商品id',
sku_name string comment '商品名称',
state_map map<string,string> comment '商品状态信息')
row format delimited
fields terminated by '|'
collection items terminated by ','
map keys terminated by ':';

在linux虚拟环境中创建本地文件

 

(4)行分隔符(必须放在最后,目前仅支持\n

语法:lines terminated by '\n'

(5)使用多字符作为分隔符

使用MultiDelimitSerDE实现

--创建多分割符表
CREATE TABLE test_MultiDelimit(id int, name string ,tel string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"="##")
STORED AS TEXTFILE;

  

 

上一篇:Hive 企业中两种常用表创建组合


下一篇:hive 基础知识