Hive的联级(cascade)- 修改分区表的字段类型或者增加新字段

2023-11-16

一、问题描述

踩坑:数仓的分区表,由于需求需要,要把int类型的字段改为bigint,我直接执行的以下语句:

      alter table table_name change column 字段 字段 bigint;

出现的问题:之后的分区数据可以正常的显示,历史数据查出来的数据为0,无论insert overwrite重新导数据、把有问题的分区数据删掉都不能正常显示。


尝试了在原来基础上执行:alter table table_name change column 字段 字段 bigint cascade; 也不行

二、问题解决

方法:把修改过类型的表drop掉,然后将hdfs上的分区目录文件删掉。
    
执行命令:      drop table table_name;
                hadoop fs -rm -r + hdfs文件路径

最后所有的历史数据重新加载,

Tips:由于我的分区个数少,且历史数据量少,所以我这么做了。
    

三、最佳问题解决

在我们执行更改字段类型、增加字段时,在语句末尾加上cascade就ok了,要不然很麻烦

alter table table_name change column 字段 字段 bigint cascade;

四、cascade知识

1.cascade的中文翻译为“级联”,也就是不仅变更新分区的表结构(metadata),同时也变更旧分区的表结构。

2.对于删除操作也是,级联删除表中的信息,当表A中的字段引用了表B中的字段时,一旦删除B中该字段的信息,表A的信息也自动删除。(当父表的信息删除,子表的信息也自动删除)

3.标准语法如下:

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive的联级(cascade)- 修改分区表的字段类型或者增加新字段 的相关文章

  • Hive 和 PIG/Grunt shell 挂在 cygwin 上

    我在 Windows 7 机器 32 位 上以本地模式运行 Hadoop 我已将 HIVE PIG Hadoop Java6 全部安装在 C 驱动器上 我使用的 Cygwin 版本 2 819 我已将 C 安装在 cygwin 上 我可以从
  • 在 Hive HQL 中将字符串转换为时间戳

    我有一个像 08 03 2018 02 00 00 这样的字符串 我试图将其转换为时间戳值 我正在使用下面的代码 unix timestamp 08 03 2018 02 00 00 yyyy MM dd T HH mm ss SSSXXX
  • Hive“ANALYZE TABLE”如何从java执行

    我需要计算配置单元表中的行数 为此 我正在使用查询 ANALYZE TABLE p 7 COMPUTE STATISTICS noscan 我想通过java获取结果 我正在尝试以下操作 代码并没有运气 我得到的错误是 Exception i
  • java.lang.RuntimeException:无法实例化 org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

    我在 ubuntu 14 0 上安装了 Hadoop 2 7 1 和 apache hive 1 2 1 版本 为什么会出现这个错误 是否需要安装任何元存储 当我们在终端上输入 hive 命令时 xml 的内部是如何调用的 这些 xml 的
  • 在 HIVE 中选择该月的第一天

    我正在使用 Hive 它与 SQL 类似 但对于 SQL 用户来说语法可能略有不同 我看过其他的stackoverflow 但它们似乎在SQL中具有不同的语法 我试图通过此查询获取该月的第一天 这给了我今天的一天 例如 如果今天是 2015
  • Hive 函数替换列值中的逗号

    我有一个配置单元表 其中字符串列的值为 12 345 有没有什么方法可以在插入此配置单元表期间删除逗号的配置单元函数 您可以使用regexp replace string INITIAL STRING string PATTERN stri
  • 根据列删除配置单元中的重复行

    我有一个包含 10 列的 HIVE 表 其中前 9 列将有重复的行 而第 10 列则不会 因为 CREATE DATE 将具有创建日期 例子 如果我今天在表中插入 10 行 它将具有 CREATE DATE 作为今天的日期 如果我明天再次插
  • Apache Hive regEx serde:数据类型

    对于处理日志 我想使用 Apache Hive regEx serde 但我只找到使用 String 作为表列的数据类型的示例 现在我的问题是 是否支持基于日期的类型 整数和数组 还是只是字符串 此示例 和其他示例 仅使用字符串 CREAT
  • Apache Hive - 复杂数据类型映射 不起作用

    蜂巢版本2 1 1 问题描述 集合项终止值作为映射键插入 蜂巢表 CREATE TABLE profiles id int name struct
  • 如何将键值对加载到hive表中?

    以下是我的数据集 Jun name balaji id 101 Mar name kumar id 102 创建的表 create table sample month string name string id int row forma
  • 将 Hive 表导出到 hdfs 中的 csv

    我知道在 Hive 中将表保存到 csv 或其他文本文件 时 分隔符存在一个已知问题 所以我想知道你们是否可以帮助我解决这个问题 我有一个现有的表 表 A 我想将其以 csv 格式保存到 hdfs 通过阅读其他回复 我相信我必须首先创建一个
  • Hive 分区表上的 Spark 行为

    我用的是 Spark 2 实际上我不是执行查询的人 所以我不能包含查询计划 数据科学团队问过我这个问题 我们将 Hive 表划分为 2000 个分区并以 parquet 格式存储 当在 Spark 中使用相应的表时 执行器之间恰好执行了 2
  • Spark SQL 未正确转换时区[重复]

    这个问题在这里已经有答案了 使用 Scala 2 10 4 和 Spark 1 5 1 和 Spark 1 6 sqlContext sql select id to date from utc timestamp from unixtim
  • HIVE:GROUP BY 的行为与 MySQL 中不同

    我对 MySQL 有一些经验 最近我必须在 HIVE 上做一些工作 两者之间的查询基本结构非常相似 但是 HIVE 中的 GROUP BY 的工作方式似乎有点不同 因此我无法实现以前在 MySQL 中使用 GROUP BY 可以实现的目标
  • 在 Hive 中获取空值 使用 REGEX 创建和加载查询

    我有一个日志文件 我需要在其中使用 REGEX 存储数据 我尝试了下面的查询 但加载了所有 NULL 值 我已经检查了 REGEXhttp www regexr com http www regexr com 它对我的 数据工作正常 CRE
  • Hive - 通过聚合跨组的值来创建映射列类型

    我有一个看起来像这样的表 customer category room date 1 A aa d1 1 A bb d2 1 B cc d3 1 C aa d1 1 C bb d2 2 A aa d3 2 A bb d4 2 C bb d4
  • 在 IDEA 中运行 Spark on Hive 项目期间创建事务连接工厂时出错

    我正在尝试为 Spark Streaming 项目设置一个开发环境 该项目需要将数据写入 Hive 我有一个包含 1 个主设备 2 个从设备和 1 台开发机器的集群 在 Intellij Idea 14 中编码 在 Spark shell
  • AWS Athena 扁平化来自嵌套 JSON 源的数据

    我想从 Athena 中的嵌套 JSON 创建一个表 描述的解决方案here http docs aws amazon com athena latest ug json html使用 hive Openx JsonSerDe 等工具尝试在
  • 将日期字符串转换为“MM/DD/YY”格式

    我刚刚看到这个例子 我该如何解决这个问题 Hive 元存储包含一个名为 Problem1 的数据库 其中包含一个名为 customer 的表 customer 表包含 9000 万条客户记录 90 000 000 每条记录都有一个生日字段
  • 在 Hive 中获取数据的交集

    我在配置单元中有以下数据 userid cityid 1 15 2 15 1 7 3 15 2 8 3 9 3 7 我只想保留具有 cityid 15 和 cityid 7 的用户 ID 在我的示例中 它将是用户 ID 1 和 3 我试过

随机推荐

  • 龙芯2k1000la之固态硬盘重新分区

    当我们想为系统安装一些配置后发现我们想要安装到的磁盘分区满了时我们可以对固态硬盘进行重新分区 如下以up重装系统时 新系统压缩包太大无法在sda1解压为例 当我将 dev sda1挂载到disk文件夹并想要解压新系统时 提示该设备上已经没有
  • idea 注册码 在线生成方式

    已经有前辈搞了一个在线网站了 直接生成即可的 http idea iteblog com
  • python request 爬虫爬取起点中文网小说

    1 网页分析 进入https www qidian com 点击全部 进行翻页 你就会发现一个规律 url https www qidian com all orderId style 1 pageSize 20 siteid 1 pubf
  • Windows下安装GPU版本的PyTorch(防踩坑)

    预言 防踩坑 恭喜你 比较幸运 安装GPU版本的PyTorch找到了此博文 博主最初因操作不利 由于自身轻微强迫症 完美主义强行刷机重装系统两次 再次声明 用于NLP中的GPU加速 不用单独安装VS CUDA cuDNN 请耐心看此博文 两
  • [牛客网]oj输入输出练习

    a b 多组 import java util public class Main public static void main String args Scanner scanner new Scanner System in Arra
  • 创建Google play开发者账号,并验证身份通过

    一 注册前准备 最好准备一台没有怎么用过Google的电脑和 准备一个没有注册过Google的手机号 准备一张信用卡或者借记卡 需要支付 25 支持的类型如下图 这里还需注意 最后账号注册成功还需要验证身份也就是实名认证 那么Google去
  • 在Windows Server上使用IIS部署Python-Flask项目

    1 安装Flask与wfastcgi pip install Flask pip install wfastcgi 1 python安装wfastcgi并激活 2 进入python安装目录下的scripts文件夹然后运行wfastcgi e
  • 15黑马笔记之二叉树的递归遍历求叶子节点数

    15黑马笔记之二叉树的递归遍历求叶子节点数 1 思想 对每一个节点遍历其左右孩子 若都为空 则是叶子节点 递归结束条件 传进的节点不为空 代码基本只是在递归遍历的基础上加了统计叶子数的变量 2 具体代码实现 例子 include
  • nginx 反向代理 ssh连接办公室win电脑

    1 生产密钥免密连接服务器 ssh keygen 复制win电脑上的 ssh id rsa pu到服务器 root ssh 目录下 cat id rsa pub gt gt authorized keys sudo chmod 600 au
  • windows11安装wsl2(linux)+VScode+ miniconda+TVM+python环境部署

    在wsl上运行 TVM demo 环境配置 预备加速工具 vpn 清华镜像 第一次安装 失败 1 Windows11 D盘安装wls linux 2 安装vscode并连接到WSL2 3 wsl 安装miniconda 4 wls安装TVM
  • JavaSE基础学习

    JavaSE基础笔记 锦苏的个人笔记 首先声明 这个笔记是根据韩顺平老师 讲的Java课程全程来学习并且做笔记的 如果各位小伙伴们 需要从事Java行业那么从开始决定学习了 就不要放弃 三天打鱼两天晒网这是我的真实写照 我希望不是大家的真实
  • openwrt恢复默认设置

    如果通过无线或者有线口无法连接到router 可以用恢复某些设置重新设置路由器 1 开机 等着一个工作灯亮的时候立即按下rest键2秒 然后就开始拼命闪烁 很好现在进入failsafe模式了 2 设置电脑的ip为静态ip 192 168 1
  • 数据库中的binlog、redolog、undolog的区别

    binlog二进制日志是mysql server层的 主要是做主从复制 时间点恢复使用 redo log重做日志是InnoDB存储引擎层的 用来保证事务安全 undo log回滚日志保存了事务发生之前的数据的一个版本 可以用于回滚 同时可以
  • 线程池之阻塞主线程,等子线程全部跑完之后,执行主线程

    在spark中有异步多线程的需求 需要阻塞主线程 等所有子线程都执行完成后 主线程继续执行 如果是用Thread 不太好实现 用Callable FutrueTask结合线程池 可以快速实现 final AtomicInteger mess
  • 基于Java+SSM项目的计算机毕业设计-毕业生离校管理系统项目实战(附论文+源码)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 Java毕业设计 精彩专栏推荐 安卓app毕业设计 微信小程序毕业设计 演示视频 ssm147毕业生离校离校管理系统演示 源码下载地址 https download csdn
  • 数论算法:唯一因子分解定理

    这里讲一下算法中常用到的唯一因子分解定理 合数a仅能以一种方式写成如下乘积形式 a p1 e1 p2 e2 pr er 其中pi为素数 p1
  • Vue基本知识1,安装创建以及常用指令

    Vue基本知识1 安装创建以及常用指令 1 Vue的概念 概念 vue是一个渐进式的JavaScript开发框架 基于MVVM实现数据驱动的框架 官网 还可以用来做SPA single page web application 一个网页就是
  • Qt udp数据发送太快,数据丢失

    Qt 在单线程中 如果数据发送太快 应用程序还在处理别的程序 就会触发不了readyRead信号 导致造成数据的丢失 解决方法可以将udp处理类继承于QThread 在多线程入口run函数里通过死循环接收数据 通过信号槽机制通知处理函数进行
  • 微信小程序&PHP 改变小程序码中间logo的方法

    需求 获取小程序码 小程序码中间logo换成用户头像 仔细看了小程序本身的程序 没有发现好的方法 如果有 不吝赐教呀 所以改变方法 把头像传回后台 使用 php gd库在后台操作 然后传回小程序端 初始数据准备 define PATH op
  • Hive的联级(cascade)- 修改分区表的字段类型或者增加新字段

    一 问题描述 踩坑 数仓的分区表 由于需求需要 要把int类型的字段改为bigint 我直接执行的以下语句 alter table table name change column 字段 字段 bigint 出现的问题 之后的分区数据可以正