首页 > 其他分享 >hive数据仓库(3)

hive数据仓库(3)

时间:2023-09-11 15:33:02浏览次数:39  
标签:comment terminated 01 name -- 数据仓库 hive table

Hive操作

数据库操作

-- 创建数据库 可以再dbs表中查看具体信息
create database mydb1;
-- 创建数据库 指定具体位置
create database mydb1 location '/user/hive/db';
-- 删除数据库
drop database mydb1;

表操作

load导入数据本质相当于使用hdfs的put命令,将数据上传到hdfs中

-- 创建表
create table t1(age int,name string);
-- 展示所有的表
show tables;
-- 展示建表语句
 show create table t1;
-- 修改表名
alter table t1 rename to t1_table;
-- 导入数据 local表示本地数据 t1_table表名
load data local inpath '/home/data/t2.data' into table t1_table;
-- 设置reduce任务数量
set mapreduce.job.reduces=2

指定行分隔符和列分隔符,否则导入的数据中有多列时,表中就会出现null,hive默认的行分隔符是换行符,默认的列分隔符是\001(文件中需要用^A来表示)

create table t3(id int comment 'ID',
                stu_name string comment 'name',
                stu_birthday date comment 'birthday',
                online boolean comment 'is online');

导入的文件

1^A张三^A2020-01-01^Atrue
2^A李四^A2020-02-01^Afalse
3^A王五^A2020-03-01^A0

执行导入:load data local inpath '/home/data/t3.data' into table t3;

自定义行分隔符和列分隔符:row format delimited

create table t3(id int comment 'ID',
                stu_name string comment 'name',
                stu_birthday date comment 'birthday',
                online boolean comment 'is online')
                row format delimited fields terminated by ' ' lines terminated by '\n';
1 张三 2020-01-01 true
2 李四 2020-02-01 false
3 王五 2020-03-01 0

执行导入:load data local inpath '/home/data/t3.data' into table t3;

表数据:Null是导入数据中为0 数据格式不匹配导致

1 张三 2020-01-01 true

2 李四 2020-02-01 false

3 王五 2020-03-01 NULL



当给字段加中文注释会出现乱码,原因是存储字段信息的表中的编码不是utf-8,解决方案

hive数据仓库(3)_分隔符

字段的数据类型

基本数据类型:

hive数据仓库(3)_数据_02

复合数据类型:

hive数据仓库(3)_数据_03

案例:

  1. 使用array来存储学生的兴趣爱好

建表:

collection items terminated by ',' 这表示数组中元素的分隔符

create table t4(id int comment 'ID',
                stu_name string comment 'name',
                hobby array<string>)
                row format delimited fields terminated by ' ' 
                collection items terminated by ','
                lines terminated by '\n';

select id,name,hobby[0] from t5; 查询第一个爱好

  1. 使用map存储学生的每科成绩

建表语句:

map keys terminated by ':' 这表示key和value的分隔符

create table t5(id int comment 'ID',
                stu_name string comment 'name',
                source map<string,int>)
                row format delimited fields terminated by ' ' 
                collection items terminated by ','
                map keys terminated by ':'
                lines terminated by '\n';

导入的数据格式

1 张飞 语文:80,数学:90,英语:89
2 刘备 语文:88,数学:98,英语:99

查询语文的成绩:select id,stu_name,source['语文'] from t5;

  1. 使用struct存储员工地址信息

员工有两个地址,一个是户籍地址,一个是公司地址。

建表语句:

create table t6(id int comment 'ID',
                stu_name string comment 'name',
                address struct<home_addr:string,offic_addr:string>)
                row format delimited fields terminated by ' ' 
                collection items terminated by ','
                lines terminated by '\n';

导入的数据:

1 关天 江西,北京
2 刘伟 湖南,广州

查询户籍地信息:select id,stu_name,address.home_addr from t6;

标签:comment,terminated,01,name,--,数据仓库,hive,table
From: https://blog.51cto.com/u_13589027/7436172

相关文章

  • Hive从小时表中删除重复数据
    Hive从小时分区中删除重复数据一、小时分区数据去重二、重写小时分区数据一、小时分区数据去重小时分区数据去重后,写入到hive临时表中withto_json_mapas(selectdistinct_track_id,time,distinct_id,to_json(lib)aslib,event,to_json(properties......
  • Hive表分区查询show partitions tablename
    Hive表分区查询showpartitionstablenameSparkSql:%sqlshowpartitionsgrainfo;......
  • 如何正确地开启hiveserver2服务
    1、开启hadoop服务主目录输入下面的语句即可:start-all.sh使用jps命令查看进程,即可确定hadoop是否已经启动;2、开启hive的metastore服务nohup/export/server/apache-hive-3.1.2-bin/bin/hive--servicemetastore&然后开启hiveserver2服务:nohup/export/server/apache-hi......
  • 关于IDEA里面连接数据库找不到org.apache.hive.jdbc.Driver的问题
    问题描述昨天就很顺利地连接上了,今天直接找不到我的class了,吓出一身冷汗;问题解决后来发现导入的jar包的路径不太对,突然想起来jar包的位置被我移动了,但是IDEA里面并没有改变原来的位置,找不到jar包的问题,重新将jar包的路径浏览一遍即可解决;......
  • 使用IDEA连接Hive数据库使用Java代码实现增删改查还需要一个Hive配置类
    可以取名为:HiveConfig--packagecom.example.config;importcom.alibaba.druid.pool.DruidDataSource;importlombok.Data;importorg.springframework.beans.factory.annotation.Qualifier;importorg.springframework.boot.context.properties.ConfigurationProperties;i......
  • hive2.3.1部署
    1.安装本人安装hive1.2.1的方式准备mysql和hive2.不同点为配置hive-site.xml时,需要在文件中额外添加配置<!--hive2需要初始换元数据schematool-initSchema-dbTypemysql--><property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value></property......
  • 信管知识梳理(二)常规信息系统集成技术(网络协议、网络存储技术、网络工程、数据仓库和中
    一、网络标准与网络协议1.1OSI网络七层架构国际标准化组织(ISO)提出的网络体系结构模型,也叫做开发系统互连参考模型(OSI/RM),通常叫做OSI参考模型。如下图所示:物理层、数据链路层、网络层:统称为通信子网。是为了联网而附加的通信设备完成数据的传输功能。应用层、表示层、会......
  • 输入jps命令发现缺少namenode进程--同时猜想hive启动失败是由于缺少namenode进程的原
    问题描述且问题解决杀死9000端口:kill-99000然后查看9000端口的进程是否还在:netstat-anp|grep9000然后尝试再次开启hadoop集群:再尝试开启hive服务:问题解决!......
  • hive添加用户名和密码的问题
    问题描述没有添加之前,即进入到beeline里面,并不需要身份验证就能够登录hive:但是在尝试将NONE换成CUSTOM,身份验证就没作用了;我也不太清楚登录需要使用的账户和密码是什么;......
  • 关于hive数据库添加信息到表中出现问题的原因细说
    问题来源在建表完成之后,尝试使用insertinto语句向表中添加数据信息,然后就一直不能成功,当然,添加的数据信息与表的字段类型是对应的;问题解决查阅相关资料发现,原来是虚拟机的内存不太够,然后就按照网上的建议,将下面的语句放置到hadoop下面的yarn-site.xml文件里面:<property>......