hive表基本语法

hive表基本语法

青少年是一个美好而又是一去不可再得的时期 是将来一切光明和幸福的开端

目录

hive表基本语法

1.ROW FORMAT用法

2.LOCATION用法

3.EXTERNAL用法 (外部表)

4.STORED AS 用法:设置数据存储格式

5.TBLPROPERTIES 用法

6.PARTITIONED BY 分区

7.扩展:向分区中插入数据时出错


1.ROW FORMAT用法

1)创建一个表

CREATE TABLE IF NOT EXISTS filetest.total_score

(

student_id string COMMENT "学生编号",

score int COMMENT "总分"

)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"

STORED AS TEXTFILE;

2)上传一下数据

load data local inpath "/usr/local/soft/hive-3.1.2/data/total_score.txt" into table filetest.total_score;

3)查看内容

select * from filetest.total_score;

ROW FORMAT用于指定Hive表中数据的存储格式 通常在创建表时使用ROW FORMAT具体指定了数据在Hive表中的行格式 包括字段之间的分隔符 行之间的分隔符等

常见的字段分隔符有逗号 制表符(制表符:Tab键 (\t))等 行分隔符一般为换行符

注意:如果数据和分隔符不匹配 则原始数据中的所有数据会变成新表中的一列数据

2.LOCATION用法

在Hive中 LOCATION关键字用于指定Hive表的存储位置 通常情况下 当你创建一个Hive表时 表的数据会存储在HDFS(Hadoop分布式文件系统)上的默认位置 但是你也可以使用LOCATION关键字来指定表的具体存储路径 使得表的数据可以存储在你指定的任意路径下 这为管理和组织数据提供了更大的灵活性

1)我们先创建一个路径

dfs -ls /;

dfs -mkdir /testDatabase/total_score;

2)创建表

CREATE TABLE IF NOT EXISTS filetest.total_score3

(

student_id string COMMENT "学生编号",

score int COMMENT "总分"

)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"

STORED AS TEXTFILE

LOCATION "/testDatabase/total_score";

3)上传数据

load data local inpath "/usr/local/soft/hive-3.1.2/data/total_score.txt" into table filetest.total_score3;

4)查看表信息

查看表的字段信息

desc total_score3;

查看表的详细信息

desc formatted total_score3;

5)删除表

drop table total_score3;

删除表的时候 HDFS上的文件也会删除 

那么 如果有重要信息 我们不想轻易删除怎么办?

3.EXTERNAL用法 (外部表)

1)我们先创建一个路径

dfs -ls /;

dfs -mkdir /testDatabase/total_score;

2)创建表

CREATE EXTERNAL TABLE IF NOT EXISTS filetest.total_score3

(

student_id string COMMENT "学生编号",

score int COMMENT "总分"

)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"

STORED AS TEXTFILE

LOCATION "/testDatabase/total_score";

3)上传数据

load data local inpath "/usr/local/soft/hive-3.1.2/data/total_score.txt" into table filetest.total_score3;

4)删除表

drop table total_score3;

注: 

外部表与普通内部表的区别在于:外部表删除表时 只能删除hive中的元数据 我们可以看到表被删除了 但是数据依然存在 不会删除对应的数据 并且和表数据的存储位置无关

4.STORED AS 用法:设置数据存储格式

1)使用方法一:

CREATE EXTERNAL TABLE IF NOT EXISTS filetest.total_score4

(

student_id string COMMENT "学生编号",

score int COMMENT "总分"

)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"

STORED AS ORC;

--load data local inpath "/usr/local/soft/hive-3.1.2/data/total_score.txt" into table filetest.total_score4;--

注意:如果数据存储格式为压缩格式 那么就不能直接将文本数据加载至表中

insert into table filetest.total_score4 select * from filetest.total_score;

2)使用方法二:

通过查询语句的结果 去创建一个新表

create table if not exists filetest.total_score5 STORED AS ORC AS select student_id,score from filetest.total_score;

5.TBLPROPERTIES 用法

1)创建表

CREATE EXTERNAL TABLE IF NOT EXISTS filetest.total_score6

(

student_id string COMMENT "学生编号",

score int COMMENT "总分"

)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t"

STORED AS TEXTFILE

TBLPROPERTIES("author"="jhw","application"="学生表 保存学生的总分 如有错请联系:jhw");

2)查看表信息

查看表的字段信息

desc total_score6;

查看表的详细信息

desc formatted filetest.total_score6;

6.PARTITIONED BY 分区

--将学生信息表中不同性别的学生进行分区保存

1)创建表

CREATE TABLE IF NOT EXISTS filetest.partition_student

(

id STRING COMMENT "学生ID",

name STRING COMMENT "学生姓名",

age int COMMENT "年龄”,

clazz STRING COMMENT “班级"

) PARTITIONED BY (gender STRING COMMENT "性别分区")

STORED AS TEXTFILE;

2)查看表结构

3)插入数据

开启动态分区支持 通过动态分区进行数据插入

set hive.exec.dynamic.partition=true;

set hive.exec.dynamic.partition.mode=nostrict;

set hive.exec.max.dynamic.partitions.pernode=1000;

insert into table filetest.partition_student PARTITION(gender="男") select id,name,age,clazz FROM filetest.students where gender="男" limit 10;

注意:动态分区默认把最后一个字段设置为分区字段 

静态分区:

insert into table filetest.partition_student PARTITION(gender="男") select "1500100002","吕金鹏",24,"文科六班";

select * from students limit 10;

7.扩展:向分区中插入数据时出错

我们打开MySQL 修改一下编码就可以啦

  1. 打开数据库

mysql -u root -p123456

2.use hive 

3.输入以下命令

修改hive database 编码alter database hive default character set utf8;修改 table 编码alter table PARTITIONS default character set utf8;alter table PARTITION_KEY_VALS default character set utf8;alter table SDS default character set utf8;修改 字段 编码alter table PARTITIONS modify column PART_name varchar(190) character set utf8;alter table PARTITION_KEY_VALS modify column PART_KEY_VAL varchar(256) character set utf8;alter table SDS modify column LOCATION varchar(4000) character set utf8;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1410510.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

.位运算.

本题涉及到计算机组成与原理的相关知识 找了一篇相当不错的讲解,大家可以借鉴:位运算:按位与、按位或、按位异或、按位左移、按位右移-CSDN博客 给定一个长度为 n𝑛 的数列,请你求出数列中每个数的二进制表示中 11 的…

设计模式: 工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。 工厂模式属于创建型…

网络架构建模:一个云案例研究-文章翻译

网络架构建模:一个云案例研究 摘要 互联网支持广泛服务的能力取决于网络架构以及未来网络所需的理论和实践创新。本文中的网络体系结构指的是计算机网络系统的结构及其物理组件、配置和通信协议之间的交互。多年来,人们对网络架构进行了各种各样的描述,其中有大量的表面图…

ICode国际青少年编程竞赛- Python-1级训练场-基本操作

ICode国际青少年编程竞赛- Python-1级训练场-基本操作 1、 Dev.step(3)2、 Dev.step(1)3、 Dev.step(7)4、 Dev.step(-1)5、 Dev.step(-5)6、 Dev.step(3) Dev.step(-8)7、 Dev.turnRight() Dev.step(1)8、 Dev.turnLeft() Dev.step(1)9、 Dev.step(4) Dev.tur…

Linux下top命令指标说明

目录 Linux下top命令指标说明1. 概览2. CPU利用率3. 内存利用率4. 进程信息 Linux下top命令指标说明 在Linux系统中,top 命令是一个用于实时监视系统运行状态的工具。通过 top 命令,我们可以了解系统的负载情况、CPU利用率、内存使用情况以及各个进程的…

免费开源语音克隆-GPT-SoVITS-WebUI只需 5 秒的声音样本

语音克隆-GPT-SoVITS-WebUI 强大的少样本语音转换与语音合成Web用户界面。 功能: 零样本文本到语音(TTS): 输入 5 秒的声音样本,即刻体验文本到语音转换。 少样本 TTS: 仅需 1 分钟的训练数据即可微调模型…

Matlab|二阶锥松弛在配电网最优潮流计算中的应用

目录 一、主要内容 二、部分代码 三、程序代码 四、下载链接 一、主要内容 最优潮流计算是电网规划、优化运行的重要基础。首先建立了配电网全天有功损耗最小化的最优潮流计算模型;其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可…

夸克网盘批量转存分享查询软件

夸克网盘批量转存分享软件,未解决批量转存困难问题以及批量分享困难问题,故研发此软件,无任何广告。 支持功能 夸克文件目录查询 自定义分页页码,分页数量 批量转存夸克文件 批量分享夸克文件 自定义导入夸克链接 使用教程…

四川景源畅信:抖音小店怎么运营?

在信息爆炸的今天,抖音小店凭借其便捷的操作和庞大的用户基础,成为了众多创业者和品牌商的新宠。如何运营好一个抖音小店,成为了许多商家亟待解决的问题。接下来,我们将从四个不同的方面,深入探讨抖音小店的运营之道。…

Android14之解决报错:libncurses.so.5与libtinfo.so.5缺少问题(二百零九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

linux实验小结

题目: 添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。截图 并把操作过程写入实验报告。 提示:如何创建一个文件呢?可以考虑 touch 命令,执 行 sudo touch /opt/forloutest 这个命令可…

Unreal 编辑器工具 批量重命名资源

右键 - Editor Utilities - Editor Utility Blueprint,基类选择 Asset Action Utility 在类默认值内,可以添加筛选器,筛选指定的类型 然后新建一个函数,加上4个输入:ReplaceFrom,ReplaceTo,Add…

Android手写自己的路由SDK

实现自己的路由框架 ​ 在较大型的Android app中常会用到组件化技术,针对不同的业务/基础功能对模块进行划分,从上到下为壳工程、业务模块、基础模块。其中业务模块依赖基础模块,壳工程依赖业务模块。同级的横向模块(比如多个业务…

【数据库主从架构】

【数据库主从架构】 1. 什么是数据库的主从架构1.1 主从复制1.1.1 MySQL的主从主从复制技术三级目录 1. 什么是数据库的主从架构 随着公司业务线的增多,各种数据都在迅速增加,并且数据的读取流量也大大增加,就面临着数据安全问题,…

用栈实现队列——leetcode刷题

题目要求我们只用栈的基本操作 push to top 入栈,peek from top 返回栈顶元素,pop from top 移除并返回栈顶元素,size 栈的大小,is_empty 判断栈是否为空,这几个函数来实现队列,也就是说,我们在…

25计算机考研院校数据分析 | 哈尔滨工业大学

哈尔滨工业大学(Harbin Institute of Technology),简称哈工大, 校本部位于黑龙江省哈尔滨市,是由工业和信息化部直属的全国重点大学,位列国家“双一流”、“985工程”、“211工程”,九校联盟 、…

「笔试刷题」:最长回文子串(中心扩展算法)

一、题目 描述 对于长度为 n 的一个字符串 A(仅包含数字,大小写英文字母),请设计一个高效算法,计算其中最长回文子串的长度。 数据范围: 1≤n≤1000 要求:空间复杂度 O(1),时间复…

和丰多媒体信息发布系统 QH.aspx 文件上传漏洞复现

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

IDEA中测试时的包名问题

报错:Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or SpringBootTest(classes...) with your test 原因:(图是别人那巴来的)启动类所在的包名和测试类的包名不一致导致的,原因是…

Qt 信号槽中信号重名解决办法

1、类似与Qt4中的写法&#xff1a; 2、函数指针 3、泛型 connect(ui->combox, QOverload<int>::of(&QCombox::currentIndexChanged), this ,&mainwindow::onindexchange);