hive分区上传数据

hive分区上传数据

目录

hive分区上传数据

一、开启HIVE中分区表支持中文字段

二、分区表操作

1.建表语句

2.分区表插入数据

3.查询分区

4.删除分区

5.恢复被删除分区

6.添加分区

7.创建多级分区(插入数据与单级分区类似)


一、开启HIVE中分区表支持中文字段

1.根据HIVE开启分区支持中文.txt中的操作步骤去SQL中执行 修改HIVE元数据库中的编码格式

修改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;

2.插入数据

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

二、分区表操作

首先 我们先创建一个新的数据库来学习我们的分区表操作

CREATE DATABASE learn2;

use learn2;

1.建表语句

CREATE TABLE IF NOT EXISTS learn2.partition_student

(

id STRING COMMENT "学生ID",

name STRING COMMENT "学生姓名",

age int COMMENT "年龄”,

clazz STRING COMMENT “班级"

) PARTITIONED BY (clazz STRING COMMENT "班级")

ROW FORMAT DELIMITED FIELDS TERMINATED BY ","

STORED AS TEXTFILE;

2.分区表插入数据

1)load data local inpath "本地路径" into table 表名 PARTITION(分区字段 = 值);

load data local inpath "/usr/local/soft/hive-3.1.2/data/文科一班.txt" into table learn2.partition_student PARTITION(clazz="文科一班");

load data local inpath "/usr/local/soft/hive-3.1.2/data/文科二班.txt" into table learn2.partition_student PARTITION(clazz="文科二班");

select * from learn2.partition_student;

2)覆盖原先分区中的数据

load data local inpath "本地路径" overwrite into table 表名 PARTITION(分区字段 = 值);

load data local inpath "/usr/local/soft/hive-3.1.2/data/新文科一班.txt" overwrite into table learn2.partition_student PARTITION(clazz="文科一班");

3)-put 方法上传

dfs -put /usr/local/soft/hive-3.1.2/data/理科一班.txt /user/hive/warehouse/learn2.db/partition_student2/clazz=理科二班/;

4)添加动态分区

set hive.exec.dynamic.partition=true; --设置开启动态分区

set hive.exec.dynamic.partition.mode=nostrict; --设置动态分区的模式为非严格模式

set hive.exec.max.dynamic.partitions.pernode=1000;  --设置分区的最大分区数

插入格式:

insert into table 表名 PARTITION(分区字段) select查询语句;

分区规则:默认是查询语句后几列

CREATE TABLE IF NOT EXISTS learn2.partition_student3

(

id STRING COMMENT "学生ID",

name STRING COMMENT "学生姓名",

age int COMMENT "年龄”,

clazz STRING COMMENT “班级"

) PARTITIONED BY (clazz STRING COMMENT "班级")

ROW FORMAT DELIMITED FIELDS TERMINATED BY ","

STORED AS TEXTFILE;

insert into table learn2.partition_student3 PARTITION(clazz) select id,name,age,clazz from learn2.partition_student;

select * from learn2.partition_student3;

注意;如果出现以下错误信息

Dynamic partition strict mode requires at least one static partition column.To turn this off set hive.exec.dynamic.partition.mode=nonstrict

解决方式:执行开启动态分区设置

set hive.exec.dynamic.partition=true; --设置开启动态分区

set hive.exec.dynamic.partition.mode=nostrict; --设置动态分区的模式为非严格模式

set hive.exec.max.dynamic.partitions.pernode=1000;  --设置分区的最大分区数

3.查询分区

show partitions 表名;

show partitions learn2.partition_student;

4.删除分区

1)alter table 表名 drop PARTITION(分区字段 = 值);

alter table learn2.partition_student drop PARTITION(clazz="文科二班");

CREATE EXTERNAL TABLE IF NOT EXISTS learn2.partition_student2

(

id STRING COMMENT "学生ID",

name STRING COMMENT "学生姓名",

age int COMMENT "年龄”,

clazz STRING COMMENT “班级"

) PARTITIONED BY (clazz STRING COMMENT "班级")

ROW FORMAT DELIMITED FIELDS TERMINATED BY ","

STORED AS TEXTFILE;

load data local inpath "/usr/local/soft/hive-3.1.2/data/文科一班.txt" into table learn2.partition_student2 PARTITION(clazz="文科一班");

load data local inpath "/usr/local/soft/hive-3.1.2/data/文科二班.txt" into table learn2.partition_student2 PARTITION(clazz="文科二班");

alter table learn2.partition_student2 drop PARTITION(clazz="文科二班");

show partitions learn2.partition_student2;

注意:如果分区表是外部表 那么删除分区操作只能删除HIVE中的元数据 数据依然存在

2)强制删除分区 

dfs -rmr /user/hive/warehouse/learn2.db/partition_student2/clazz="文科二班";

删除后源数据还在 然后我们再删除一下源数据

alter table learn2.partition_student2 drop PARTITION(clazz="文科二班");

5.恢复被删除分区

msck repair table 表名;

6.添加分区

1)alter table 表名 add PARTITION(分区字段 = 值);

alter table learn2.partition_student add PARTITION(clazz="理科一班");

7.创建多级分区(插入数据与单级分区类似)

1)创建表

CREATE TABLE IF NOT EXISTS learn2.partition_student4

(

id STRING COMMENT "学生ID",

name STRING COMMENT "学生姓名",

age int COMMENT "年龄"

) PARTITIONED BY (clazz STRING COMMENT "班级",gender STRING COMMENT "性别")

ROW FORMAT DELIMITED FIELDS TERMINATED BY ","

STORED AS TEXTFILE;

2)查看表结构

desc learn2.partition_student4

3)插入多级分区数据数据

load data local inpath "/usr/local/soft/hive-3.1.2/data/文科一班女.txt" into table learn2.partition_student4 PARTITION(clazz="文科一班",gender="女");

load data local inpath "/usr/local/soft/hive-3.1.2/data/文科二班男.txt" into table learn2.partition_student4 PARTITION(clazz="文科二班",gender="男");

4)show partitions learn2.partition_student4;

5)特点:

a.查询和操作分区时 格式为:clazz=文科一班/gender=女

b.在HDFS上多级分区表现为多层级目录

c.根据具体的数据情况进行区分 尽量将大一级划分放在前

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索高级聚类技术:使用LLM进行客户细分

在数据科学领域,客户细分是理解和分析客户群体的重要步骤。最近,我发现了一个名为“Clustering with LLM”的GitHub仓库,它由Damian Gil Gonzalez创建,专门针对这一领域提供了一些先进的聚类技术。在这篇文章中,我将概…

Linux下top命令指标说明

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

cmake的使用方法: 多个源文件的编译

一. 简介 前面一篇文章学习了针对只有一个 .c源文件,如何编写 CMakeLists.txt内容,从而使用 cmake工具如何编译工程。文章如下: cmake的使用方法: 单个源文件的编译-CSDN博客 本文学习针对 多个 .c源文件, CMakeLists.txt文件如…

【算法设计与分析】实验报告c++实现(矩阵链相乘问题、投资问题、背包问题、TSP问题、数字三角形)

一、实验目的 1.加深学生对动态规划算法设计方法的基本思想、基本步骤、基本方法的理解与掌握; 2.提高学生利用课堂所学知识解决实际问题的能力; 3.提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、…

Mac环境下ollama部署和体验

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于ollama ollama和LLM(大型语言模型)的关系,类似于docker和镜像,可以在ollama服务中管理和运行各种LLM&…

Java | Leetcode Java题解之第63题不同路径II

题目&#xff1a; 题解&#xff1a; class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int n obstacleGrid.length, m obstacleGrid[0].length;int[] f new int[m];f[0] obstacleGrid[0][0] 0 ? 1 : 0;for (int i 0; i < n; i) {for (i…

spring boot学习第十八篇:使用clickhouse

1、pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://…

Vitis HLS 学习笔记--MAXI手动控制突发传输

目录 1. 简介 2. MAXI 突发传输详解 2.1 突发传输的前置条件 2.2 hls::burst_maxi 详解 2.2.1 基本知识 2.2.2 hls::burst_maxi 构造函数 2.2.3 hls::burst_maxi 读取方法 2.2.4 hls::burst_maxi 写入方法 2.3 示例一 2.4 示例二 3. 总结 1. 简介 这篇文章探讨了在…

win11 Terminal 部分窗口美化

需求及分析&#xff1a;因为在 cmd、anaconda prompt 窗口中输入命令较多&#xff0c;而命令输入行和输出结果都是同一个颜色&#xff0c;不易阅读&#xff0c;故将需求定性为「美化窗口」。 美化结束后&#xff0c;我在想是否能不安装任何软件&#xff0c;简单地通过调整主题颜…

前端高频算法

分析算法排序&#xff1a; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度: 运行完一个程序所需内存的大小。 执行效率、内存消耗、稳定性 三方面入手。 1. 排序 1.1 冒泡排序 冒泡的过程只涉及相邻数据的交换操作&#xff0c;所以它的空间复杂度为 O(1)。 为了保证…

详细设计(上)

结构程序化 三种基本控制结构 其他常用控制结构 人机界面设计 三条“黄金规则” 1、置用户于控制之下 2、减少用户记忆负担 3、保持界面一致 设计问题 设计人机界面过程中会遇到的4个问题&#xff1a; 1、系统响应时间 2、用户帮助设施 3、出错信息处理 4、命令交互 设计过…

每日算法之二叉树的层序遍历

题目描述 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 示例 2&#…

tensorflow报错

参考 TensorFlow binary is optimized to use available CPU instructions in performance-critical operations._this tensorflow binary is optimized to use availab-CSDN博客 解决Python中cuBLAS插件无法注册问题_unable to register cudnn factory: attempting to re-CS…

采用“3+1”模式,开展新部门组建的各项工作解决思路

【背景】 A公司成立于2000年&#xff0c;位于浙江省杭州市&#xff0c;是一家大中型即将上市的公司&#xff0c;近年来发展一直不错&#xff1b;同时A公司还有另外一个产业是国家级公共服务平台&#xff0c;由“1平台”、“6中心”构成&#xff0c;主要围绕园区及区域做服务。…

搭建智能客服机器人设计流程

一、检索型机器人FAQ-Bot 在客服处理的问题中70%都是简单的问答业务&#xff0c;只要找到QA知识库中与用户当前问句语义最相近的标准问句&#xff0c;取出答案给用户就可以了。FAQ-Bot就是处理这类问题的。在没有使用深度学习算法之前&#xff0c;通常采用检索NLP技术处理。 …

深入图像分类:使用美国手语数据集训练定制化神经网络

引言 在前一篇博客中&#xff0c;我们探讨了如何使用MNIST数据集训练一个基础的神经网络来进行手写数字识别。在本文中&#xff0c;我们将更进一步&#xff0c;使用美国手语字母表&#xff08;ASL&#xff09;数据集来构建一个定制化的图像分类模型。通过这个过程&#xff0c;…

免费通配符证书的申请指南——从申请到启动https

如果您的网站拥有众多二级子域名&#xff0c;那么通配符证书证书是最好的选择。 免费通配符申请流程如下&#xff1a; 1 创建证书服务商账号 首先选择一个提供免费通配符的服务商&#xff0c;打开国产服务商JoySSL官网&#xff0c;创建一个账号&#xff08;注册账号时填写注册…

分享自己一篇在亚马逊云科技AWS官网发的Blog技术文章

小李哥在亚马逊AWS官网&#xff0c;作为第一作者发了自己的第一篇AWS Blog文章&#xff0c;也是自己今年在AWS官网的第11篇文章。文章主要内容是描述为出海的金融企业&#xff0c;搭建满足PCI-DSS合规、FIPS 140-2 Level 3安全标准的传输中数据加密云端方案&#xff0c;主要用于…

CSS优惠券、卡券样式绘制

实现左右凹陷中间有虚线效果 效果图 实现思路 从效果图可以看到这个优惠券是左右两边凹陷&#xff0c;中间还有一条虚线&#xff0c;为了封装后插槽使用方便&#xff0c;把优惠券以虚线为准分了两部分。这样布局的好处是上部分内容和下部分都可以自定义&#xff0c;不受内容限…

如何搭建本地的 NPM 私有仓库 Nexus

NPM 本地私有仓库&#xff0c;是在本地搭建NPM私有仓库&#xff0c;对公司级别的组件库进行管理。在日常开发中&#xff0c;经常会遇到抽象公共组件的场景&#xff0c;在项目内部进行公用。新的项目开始时&#xff0c;也会拷贝一份创建一个新的项目&#xff0c;这样做不易于管理…