hive的表操作

 常用的hive命令

 

切换数据库use test;
查询表的建表信息show create table 数据库名称.表名;
查看表的类型信息desc formatted 数据库名称.表名;

删除内部表

drop table 数据库名称.表名;

 先启动hdfs ,mysql , hiveservice2,beeline

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT COL_COMMENT],.....)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment],....)]
[CLUSTERED BY (col_name,col_name,....)]
[SORTED BY (col_name [ASC|DESC],...)] INFO num_buckets BUCKETS]
[ROW FORMAT DELIMITED FIELDS TERMINATED BY ',']
[STORED AS file_format]
[LOCATION hdfs_path]

字段解释
1 CREATE TABLE创建一个指定名字的表,如果名字相同抛出异常,用户可以使用IF NOT EXISTS来忽略异

2 EXTERNAL关键字可以创建一个外部表,在建表的同时指定一个实际数据的路径(LOCATION)
,hive在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据

3 COMMENT是为表和列添加注释

4 PARTITIONED BY是分区表
 

5 CLUSTERED BY 是建分桶(不常用)


6 SORTED BY 是指定字段进行排序(不常用)


7 ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 是指每行数据中列分隔符为"," 
默认分隔符为" \001"

8 STORED AS 指定存储文件类型,数据文件是纯文本,可以使用STORED AS TEXTFILE

9 LOCATION 指定表在HDFS上的存储位置,内部表不要指定,
但是如果定义的是外部表,则需要直接指定一个路径。

 

--创建数据库test

create database if not exists test;


--在数据库test中创建emp1表
--有两种方式

--1.先切换数据库 再创建表
use test;create table if not exists emp1(emp_id int,emp_name string,department_id int)
stored as textfile
;


--将以上内容写入sql文件中,再用source 执行文件

source /opt/sql/create_emp.sql;

--查询表的建表信息
--show create table 数据库名称.表名;

show create table test.emp1;
+----------------------------------------------------+
|                   createtab_stmt                   |
+----------------------------------------------------+
| CREATE TABLE `test.emp1`(                          |
|   `emp_id` int,                                    |
|   `emp_name` string,                               |
|   `department_id` int)                             |
| ROW FORMAT SERDE                                   |
|   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'  |
| STORED AS INPUTFORMAT                              |
|   'org.apache.hadoop.mapred.TextInputFormat'       |
| OUTPUTFORMAT                                       |
|   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' |
| LOCATION                                           |
|   'hdfs://bigdata004:8020/user/hive/warehouse/test.db/emp1' |
| TBLPROPERTIES (                                    |
|   'bucketing_version'='2',                         |
|   'transient_lastDdlTime'='1719865642')            |
+----------------------------------------------------+


--2.直接在建表语句中指定对应的数据库
create table if not exists test.emp1(emp_id int,emp_name string,department_id int)
stored as textfile
;

--查看表的类型信息
--desc formatted 数据库名称.表名;
desc formatted test.emp1;
 


+-------------------------------+----------------------------------------------------+----------------------------------------------------+
|           col_name            |                     data_type                      |                      comment                       |
+-------------------------------+----------------------------------------------------+----------------------------------------------------+
| # col_name                    | data_type                                          | comment                                            |
| emp_id                        | int                                                |                                                    |
| emp_name                      | string                                             |                                                    |
| department_id                 | int                                                |                                                    |
|                               | NULL                                               | NULL                                               |
| # Detailed Table Information  | NULL                                               | NULL                                               |
| Database:                     | test                                               | NULL                                               |
| OwnerType:                    | USER                                               | NULL                                               |
| Owner:                        | root                                               | NULL                                               |
| CreateTime:                   | Tue Jul 02 04:27:22 CST 2024                       | NULL                                               |
| LastAccessTime:               | UNKNOWN                                            | NULL                                               |
| Retention:                    | 0                                                  | NULL                                               |
| Location:                     | hdfs://bigdata004:8020/user/hive/warehouse/test.db/emp1 | NULL                                               |
| Table Type:                   | MANAGED_TABLE                                      | NULL                                               |
| Table Parameters:             | NULL                                               | NULL                                               |
|                               | COLUMN_STATS_ACCURATE                              | {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"department_id\":\"true\",\"emp_id\":\"true\",\"emp_name\":\"true\"}} |
|                               | bucketing_version                                  | 2                                                  |
|                               | numFiles                                           | 0                                                  |
|                               | numRows                                            | 0                                                  |
|                               | rawDataSize                                        | 0                                                  |
|                               | totalSize                                          | 0                                                  |
|                               | transient_lastDdlTime                              | 1719865642                                         |
|                               | NULL                                               | NULL                                               |
| # Storage Information         | NULL                                               | NULL                                               |
| SerDe Library:                | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe | NULL                                               |
| InputFormat:                  | org.apache.hadoop.mapred.TextInputFormat           | NULL                                               |
| OutputFormat:                 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | NULL                                               |
| Compressed:                   | No                                                 | NULL                                               |
| Num Buckets:                  | -1                                                 | NULL                                               |
| Bucket Columns:               | []                                                 | NULL                                               |
| Sort Columns:                 | []                                                 | NULL                                               |
| Storage Desc Params:          | NULL                                               | NULL                                               |
|                               | serialization.format                               | 1                                                  |
+-------------------------------+----------------------------------------------------+----------------------------------------------------+
33 rows selected (0.153 seconds)


--创建带有注释的内部表emp2
 

create table if not exists test.emp2(emp_id int comment "员工id",emp_name string comment "员工姓名",department_id int comment "部门id"
)
comment "员工内部表"
stored as textfile
;


--将以上内容写入sql文件中,再用source
--在beeline命令行中执行sql文件

此时查看建表信息


+----------------------------------------------------+
|                   createtab_stmt                   |
+----------------------------------------------------+
| CREATE TABLE `test.emp2`(                          |
|   `emp_id` int COMMENT '??id',                     |
|   `emp_name` string COMMENT '????',                |
|   `department_id` int COMMENT '??id')              |
| COMMENT '?????'                                    |
| ROW FORMAT SERDE                                   |
|   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'  |
| STORED AS INPUTFORMAT                              |
|   'org.apache.hadoop.mapred.TextInputFormat'       |
| OUTPUTFORMAT                                       |
|   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' |
| LOCATION                                           |
|   'hdfs://bigdata004:8020/user/hive/warehouse/test.db/emp2' |
| TBLPROPERTIES (                                    |
|   'bucketing_version'='2',                         |
|   'transient_lastDdlTime'='1719868467')            |
+----------------------------------------------------+
16 rows selected (0.104 seconds)

 问号部分就是注释里的中文,要解决下其乱码问题

解决hive中文乱码

1.登录mysql 执行如下命令 然后重启mysql

得先退出hive 并杀死进程 kill -9 进程号

#修改字段注释字符集
alter table hive.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;#修改表注释字符集
alter table hive.TABLE_PARAMS modify column PARAM_VALUE varchar(20000) character set utf8;#修改分区参数,支持分区建用中文表示
alter table hive.PARTITION_PARAMS modify column PARAM_VALUE varchar(20000) character set utf8;
alter table hive.PARTITION_KEYS modify column PKEY_COMMENT varchar(20000) character set utf8;

 打开navicat

将命令输入 ,点击运行

重启mysql

systemctl stop mysqld
systemctl start mysqld

##2. 在hive-site.xml配置文件中修改如下配置
  

      <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://bigdata004:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value><description>JDBC connect string for a JDBC metastore</description></property>

 

对于之前创建的带注释的表emp2不起效果,一=应该重新创建一个注释的表


+----------------------------------------------------+
|                   createtab_stmt                   |
+----------------------------------------------------+
| CREATE TABLE `test.emp2`(                          |
|   `emp_id` int COMMENT '员工id',                     |
|   `emp_name` string COMMENT '员工姓名',                |
|   `department_id` int COMMENT '部门id')              |
| COMMENT '?????'                                    |
| ROW FORMAT SERDE                                   |
|   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'  |
| STORED AS INPUTFORMAT                              |
|   'org.apache.hadoop.mapred.TextInputFormat'       |
| OUTPUTFORMAT                                       |
|   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' |
| LOCATION                                           |
|   'hdfs://bigdata004:8020/user/hive/warehouse/test.db/emp2' |
| TBLPROPERTIES (                                    |
|   'bucketing_version'='2',                         |
|   'transient_lastDdlTime'='1719869823')            |
+----------------------------------------------------+

成功了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

持续部署的7个陷阱及其避免方法

什么是持续部署&#xff1f; 持续部署是一种软件开发实践&#xff0c;其中代码更改会自动部署到生产中&#xff0c;无需开发人员或运营团队的明确批准。这实现了从开发到部署的完全自动化流程&#xff0c;确保新功能、错误修复和更新能够快速提供给最终用户。通过将此流程集成…

昇思25天学习打卡营第9天|MindSpore-Vision Transformer图像分类

Vision Transformer图像分类 Vision Transformer(ViT)简介 近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前…

某Dota/IM的某电竞对战平台玩家助手、查看战绩、胜率等

功能说明 WAR3游戏启动后&#xff0c;可以自动获取游戏双方的玩家列表&#xff0c;然后查询显示玩家的战绩及个人信息。附带查看玩家的战绩详情、最近游戏&#xff0c;查看对手及友方的战绩详情&#xff0c;据此推算出是否开黑、是否小号等信息 使用方法及运行效果 启动 查…

【C++题解】1456. 淘淘捡西瓜

问题&#xff1a;1456. 淘淘捡西瓜 类型&#xff1a;贪心 题目描述&#xff1a; 地上有一排西瓜&#xff0c;每个西瓜都有自己的重量。淘淘有一个包&#xff0c;包的容量是固定的&#xff0c;淘淘希望尽可能在包里装更多的西瓜&#xff08;当然要装整个的&#xff0c;不能切开…

03-《含羞草》

含羞草 含羞草&#xff08;学名&#xff1a;Mimosa pudica Linn. &#xff09;&#xff1a;为豆科多年生草本或亚灌木&#xff0c;由于叶子会对热和光产生反应&#xff0c;受到外力触碰会立即闭合&#xff0c;所以得名含羞草。形状似绒球。开花后结荚果&#xff0c;果实呈扁圆形…

学习笔记——动态路由——OSPF(工作原理)

九、OSPF协议的工作原理 1、原理概要 (1)相邻路由器之间周期性发送HELLO报文&#xff0c;以便建立和维护邻居关系。 (2)建立邻居关系后&#xff0c;给邻居路由器发送数据库描述报文(DD)&#xff0c;也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器…

LabVIEW汽车ECU测试系统

开发了一个基于LabVIEW开发的汽车发动机控制单元&#xff08;ECU&#xff09;测试系统。该系统使用了NI的硬件和LabVIEW软件&#xff0c;能够自动执行ECU的功能测试和性能测试&#xff0c;确保其在不同工作条件下的可靠性和功能性。通过自动化测试系统&#xff0c;大大提高了测…

使用 Rustup 管理 Rust 版本

文章目录 安装 Rustup配置镜像源安装 Rustup 安装 RustVS Code插件创建项目代码示例 Rust 官网&#xff1a;https://www.rust-lang.org/zh-CN/Crates 包管理&#xff1a;https://crates.io/Rust 程序设计语言&#xff1a;https://kaisery.github.io/trpl-zh-cn/通过例子学 Rust…

DevOps认证是什么?DevOps工具介绍

DevOps 这个词是由Development&#xff08;开发&#xff09; 和 Operations&#xff08;运维&#xff09;组合起来的&#xff0c;你可以把它理解成为一种让开发团队和运维团队紧密合作的方法。 DevOps从2009年诞生到现在已经14年多了&#xff0c;一开始大家还在摸索&#xff0…

因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的 解决方法

目录 1. 问题所示2. 解决方法3. 解决方法1. 问题所示 输入共享文件地址的时候,出现如下信息: 因为文件共享不安全,所以你不能连接到文件共享。此共享需要过时的SMB1协议,而此协议是不安全的,可能会是你的系统遭受攻击。你的系统需要SMB2或更高版本截图如下所示: 2. 解决…

【Elasticsearch】一、概述,安装

文章目录 概述全文搜索引擎概述ES&#xff08;7.x&#xff09; 安装ES&#xff08;Docker&#xff09;测试&#xff0c;是否启动成功 可视化工具配置中文 客户端Postman下载 概述 ES是开源的高扩展的分布式全文搜索引擎&#xff0c;实时的存储、检索数据&#xff1b;本身扩展性…

助力游戏实现应用内运营闭环,融云游戏社交方案升级!

通信能力在所有应用场景都是必备组件&#xff0c;这源于社交属性带给应用的增长神话。 在游戏场景&#xff0c;玩家从少数核心向大众用户泛化扩展的过程&#xff0c;就是游戏深度融合社交能力的过程。 从单机到联机&#xff0c;游戏乐趣的升级 1996 年&#xff0c;游戏界顶流…

理解 REST API 和 GraphQL 的区别

你可能听说过 GraphQL&#xff0c;但对它与 REST 的区别还不完全确定。今天我们将介绍 REST 和 GraphQL 的一些基本原理&#xff0c;以及它们的不同使用场景。 GraphQL 作为 REST API 的替代品越来越受欢迎&#xff0c;不过它不一定是完全的“替代品”。 根据你的使用情景&am…

cache映射

从主存到cache 假设把每个内存块分为4份&#xff0c;每次从主存中读取都是以块为单位&#xff0c;一次读取一个块。 (因为根据空间的局部性原理&#xff0c;当需要用到一个地址时&#xff0c;后续很大概率要用到其相邻的地址&#xff0c;因此一次读取一个块这种预读操作可以减…

无人机水运应用场景

航行运输 通航管理&#xff08;海事通航管理处&#xff09; 配员核查流程 海事员通过VHF&#xff08;甚高频&#xff09;系统与船长沟通核查时间。 无人机根据AIS&#xff08;船舶自动识别系统&#xff09;报告的船舶位置&#xff0c;利用打点定位 功能飞抵船舶上方。 使用…

GL823K USB 2.0 SD/MSPRO读卡器控制芯片

概述 GL823K是一个USB 2.0单轮读卡器控制芯片&#xff0c;可以支持SD/MMC/MSPRO闪存卡。它支持USB 2.0高速传输&#xff0c;它在一个芯片上可以控制读取诸如安全数字卡&#xff08;SD卡&#xff09;&#xff0c;SDHC卡&#xff0c;迷你SD卡&#xff0c;微SD卡&#xff08;T-Fl…

java基于ssm+jsp 二手交易平台网站

1商家能模块 商家首页&#xff0c;在商家首页页面可以查看个人中心、商品分类管理、商品信息管理、订单信息管理、订单配送管理信息&#xff0c;如图1所示。 图1商家首页界面图 个人中心&#xff0c;用户通过个人中心可以查看用户名、用户姓名、头像、性别、手机号码、邮箱等信…

《企业实战分享 · 常用运维中间件》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; 近期刚转战 CSDN&#xff0c;会严格把控文章质量&#xff0c;绝不滥竽充数&#xff0c;如需交流&#xff…

Linux socketcan应用编程

一、基本步骤 1、打开并绑定到 CAN 套接字 在执行任何操作之前&#xff0c;第一步是创建一个套接字。此函数接受三个参数 – 域/协议系列 &#xff08;PF_CAN&#xff09;、套接字类型&#xff08;原始或数据报&#xff09;和套接字协议。如果成功&#xff0c;该函数将返回文件…

Linux多线程【线程互斥】

文章目录 Linux线程互斥进程线程间的互斥相关背景概念互斥量mutex模拟抢票代码 互斥量的接口初始化互斥量销毁互斥量互斥量加锁和解锁改进模拟抢票代码&#xff08;加锁&#xff09;小结对锁封装 lockGuard.hpp 互斥量实现原理探究可重入VS线程安全概念常见的线程不安全的情况常…