码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Hive新增/变更字段后,Hive metastore与Hive tblproperties缓存的spark schema不一致处理


    一、创建测试表

    CREATE TABLE `ittemp`.`zxh_test1` (

    `col1` VARCHAR(64) COMMENT '测试字段1',

    `col2` INT COMMENT '测试字段2',

    `col3` DECIMAL(16,2) COMMENT '测试字段3'

    )

    stored as parquet

    PARTITIONED BY (`dt` varchar(8) comment '分区')

    COMMENT '测试表1';

    二、插入测试数据

    insert overwrite `ittemp`.`zxh_test1` partition(dt='20220707') values ('a',1,1.1);

    三、spark查询测试

    select * from `ittemp`.`zxh_test1`;

    四、通过hive新增字段

    alter table `ittemp`.`zxh_test1` add columns ( `COL4` VARCHAR(40) comment '测试字段4');

    五、spark查询测试(报hive metastore不一致)

    select * from `ittemp`.`zxh_test1`;

    六、通过hive更新TBLPROPERTIES

    1、通过hive执行show create table `ittemp`.`zxh_test1`查看tblproperties信息

    注:一般关注'spark.sql.sources.schema.part.0'参数值,当表字段过多时,可能存在 'spark.sql.sources.schema.part.1'、'spark.sql.sources.schema.part.2'等多个,需要关注涉及更新的字段信息在哪个参数里

    2、 更新tblproperties值

    alter table `ittemp`.`zxh_test1` set TBLPROPERTIES

    (

    'spark.sql.sources.schema.part.0'='{"type":"struct","fields":[{"name":"col1","type":"varchar(64)","nullable":true,"metadata":{"comment":"测试字段1"}},{"name":"col2","type":"integer","nullable":true,"metadata":{"comment":"测试字段2"}},{"name":"col3","type":"decimal(16,2)","nullable":true,"metadata":{"comment":"测试字段3"}},{"name":"col4","type":"varchar(40)","nullable":true,"metadata":{"comment":"测试字段4"}},{"name":"dt","type":"varchar(8)","nullable":true,"metadata":{"comment":"分区"}}]}'

    );

    七、再次通过spark查询,hive metastore不一致告警消失

    select * from `ittemp`.`zxh_test1`;

  • 相关阅读:
    flutter 参数传一个范型数据
    CoordinatorLayout和AppBarLayout 嵌套无法滑动问题
    ES 数据迁移最佳实践
    uniapp h5使用原生的input标签
    支撑百万级传感器的延时队列
    电商行业少不了的营销方式——邮件营销
    win10 使用cmake + mingw编译LAPACK
    tensor和ndarray的相互转换,同时需要注意cuda和cpu的迁移
    基于SSM框架的《超市订单管理系统》Web项目开发(第三天)用户管理,模糊查询,精准匹配,分页显示数据
    java毕业设计——基于java+EVENODD编码的基于纠错码的冗余技术设计与实现(毕业论文+程序源码)——基于纠错码的冗余技术
  • 原文地址:https://blog.csdn.net/mypowerhere/article/details/125758845
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号