在hive仓库修改以前逻辑中,如果因为 一时的需要 增加了hive表的字段,后来在过些日子思考后感觉
这个业务不需要在增加这个字段, 在hive分区表中,
增加列语句, 需要增加 cascade,否则分区表在查询某天分区数据时会查不到
alter table ods_teach_online_coursewares ADD COLUMNS (ccdl_begtime string COMMENT '打点开始时间') CASCADE;
这里主要讨论的是,在分区表增加了列,后来又不需要这些列的处理方式:
1 这是我常用的方式,通过sql方式:
eg : 表1 需要将 列1,列2去掉,
那么,先创建好 去掉列1,2的这个表,
然后hive命令行中如下:
set hive.exec.dynamic.partition.mode=nonstrict; 必须设置 insert overwrite table ods_teach_online_coursewares_bak partition(day) select 在 select 具体列名时,必须要显示带上 day province_id, province_name, city_id, city_name, county_id, county_name, school_id, school_name, grade, class_id, class_name, subject_id, subject_name, book_id, book_name, unit_id, unit_name, ccl_coursewares_id, coursewares_name, is_collect, pid, courseware_creator, creator_name, creator_icon, courseware_owner, owner_name, owner_icon, ccl_id, ccl_begtime, ccl_endtime, duration, ccdl_type, resource_count, ccl_type, day from ods_teach_online_coursewares distribute by day;
如下是加载样子:
如果是拷贝整个表的列,而不是只拷贝部分列,写法如下:
insert overwrite table tmp_test partition(day) select * from dm_login_class_user_count_distribution_semester distribute by day
方式2 :
方式2: 通过 hadoop cp命令 + hive msck repair命令组合使用 1 create table tmp_test1 like dm_login_class_user_count_distribution_semester; 创建目标表 2 hadoop fs -cp hdfs://Galaxy/user/hive/warehouse/dev_treasury.db/dm_login_class_user_count_distribution_semester/* hdfs://Galaxy/user/hive/warehouse/dev_treasury.db/tmp_test1/ 将原表hdfs数据拷贝到目标表 hdfs目录中 3 进入Hive环境中, 输入 MSCK REPAIR TABLE tmp_test1; 4 验证数据是否加载进来: > select * from dm_login_class_user_count_distribution_semester where day='2016-12-12' limit 1; OK 2016-12-12 4 3301 0 EDUCATION_STAFF 769 896 0 2016-12-12
相关推荐
Hive表分区,里面有比较详细的Hive表分区方法,希望能够有所帮助。
hive表修改分区数据
北京马士兵教育公众号:马士兵《 Java系列课程》Hive动态分区和分桶北京马士兵教育公众号:马士兵《 Java系列课程》动态分区hive 动态分区– 开启支持
详细描述了hive分桶表,分区表的创建,附带详细建表语句,包含一级静态分区,二级静态分区,一级动态分区,二级动态分区,分区的查询,删除,添加,数据的导入
hive数据分区时分区字段不可为中文。
hive双分区外部表复合数据结构博客的数据资料,欢迎下载。
BLOG_如何将一个普通表转换为分区表.pdfBLOG_如何将一个普通表转换为分区表.pdf
Hive分区表 Hive分区表对应的是HDFS上独立的文件夹,该文件夹存放的是该分区的所有数据,其实分区就是分目录。Hive通过分区把一个大的数据集根据业务需要分割成小的数据集,在查询时能够通过where关键词选择指定分区...
大数据MR原理启动hive设置队列,对已经存在hdfs的有分区有表结构和数据信息的表,进行查询表.查询表分区,查询表结构的完整流程如下.学无长幼.
目录 1 Hive 概念与连接使用: 2 ...5.1 Hive 添加分区 4 5.2 Hive 删除分区 5 6 SHOW语句 5 7 DESCRIBE语句 5 8 加载数据 5 9表连接 6 10 子查询 6 11 UNION ALL 6 12 Hive使用注意点: 6 13 Hive优化 9
hadoop下Hive的三种方式安装与搭建,hadoop下Hive的三种方式安装与搭建
Hive与Hbase的整合,集中两者的优势,使用HiveQL语言,同时具备了实时性
基于hadoop的,java实现hive快速导数据到Hbase解决方案。
NULL 博文链接:https://jonas-wang.iteye.com/blog/1927709
Ambari搭建hadoop环境下,hive的数据导入
hive hive hive hive hive hive hive hive hive hive hive hive
hive metastore hive metastore是hive的元数据管理服务,实际应用中很多第三方框架需要访问metastore服务,如spark,impala等。同样hive metastore也提供了java接口。 使用 import org.apache.hadoop.hive.conf....
16.Hive中数据导出的4种方式及表的导入导出 17.Hive中HQL的基本语法(一) 18.Hive中HQL的基本语法(二) 19.Hive中order by、sort by、distribute by与cluster by的使用 20.Hive中分析函数与窗口函数 21.Hive中UDF...
hive分桶,分区操作案例实战。学习的好资料。hive分桶,分区操作案例实战。学习的好资料。hive分桶,分区操作案例实战。学习的好资料。
Hive几种使用方式: 1.Hive交互shell bin/hive 2.Hive JDBC服务(参考java jdbc连接mysql) 3.hive启动为一个服务器,来对外提供服务 bin/hiveserver2 nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/...