hive表批处理
对hive中的表进行批量处理,如下是一个简单的脚本
#给定一个hive数据库名,生成它的所有表的create SQL语句,并导出到文件
create_fun(){
hive -e "show create table $1.$2">>$
} #显示一个表中所有的分区
show_partitions(){
hive -e "show partitions $1.$2 ;">>$
} #将一个表中所有分区重命名
rename_partition(){
start_day=$
end_day=$ while [ ${start_day} -le ${end_day} ]
do
day_int=`date +"%Y%m%d" -d "${start_day}"`
day_str=`date +"%Y-%m-%d" -d "${start_day}"`
hive -e "alter table $1.$2 PARTITION (dt='${day_int}') RENAME TO PARTITION (dt='${day_str}');"
start_day=`date +"%Y%m%d" -d "${start_day} 1 days" `
done
}
#删除一个表中的分区
drop_partition(){
hive -e "alter table $1.$2 drop PARTITION (dt='$3')"
} #更新一个hive表的列分隔符
modify_separator(){
hive -e "alter table $1.$2 set SERDEPROPERTIES('field.delim'='\001');"
} #指定一个数据库,查询出所有table,并对符合条件的table进行处理
database(){
basename=$
mid_file=mid.txt
result_file=${basename}.txt
match=_ods
hive -e "use ${basename};show tables">${mid_file}
sed -i '/WARN/d' ${mid_file}
cat ${mid_file} |grep ${match} |while read line
do
drop_partition ${basename} $line $
done
rm -rf ${mid_file}
} #program start #
database $ $
hive表批处理的更多相关文章
- hive表增量抽取到oracle数据库的通用程序(二)
hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: ...
- hive表增量抽取到oracle数据库的通用程序(一)
hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一 ...
- 【翻译】Flink Table Api & SQL — Hive —— 读写 Hive 表
本文翻译自官网:Reading & Writing Hive Tables https://ci.apache.org/projects/flink/flink-docs-release-1 ...
- hive 表分区操作
hive的数据查询一般会扫描整个表,当表数据太大时,就会消耗些时间,有时候我们只需要对部分数据感兴趣,所以hive引入了分区的概念 hive的表分区区别于一般的分布式分区(hash分区,范围分区 ...
- 如何快速把hdfs数据动态导入到hive表
1. hdfs 文件 {"retCode":1,"retMsg":"Success","data":[{" ...
- HDFS文件和HIVE表的一些操作
1. hadoop fs -ls 可以查看HDFS文件 后面不加目录参数的话,默认当前用户的目录./user/当前用户 $ hadoop fs -ls 16/05/19 10:40:10 WARN ...
- 用puthivestreaming把hdfs里的数据流到hive表
全景图: 1. 创建hive表 CREATE TABLE IF NOT EXISTS newsinfo.test( name STRING ) CLUSTERED BY (name)INTO 3 ...
- spark使用Hive表操作
spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 v ...
- spark+hcatalog操作hive表及其数据
package iie.hadoop.hcatalog.spark; import iie.udps.common.hcatalog.SerHCatInputFormat; import iie.ud ...
随机推荐
- Topshelf组件
使用Topshelf组件构建简单的Windows服务 很多时候都在讨论是否需要了解一个组件或者一个语言的底层原理这个问题,其实我个人觉得,对于这个问题,每个人都有自己的看法,个人情况不同,选择的方 ...
- 自己动手编写一个VS插件(六)
作者:朱金灿 来源:http://blog.csdn.net/clever101 在上篇中我们已经实现了创建和显示一个工具栏出来,它的效果图是这样的: 现在我们实现一些简单功能,具体就是单击按钮弹出一 ...
- Logical partitioning and virtualization in a heterogeneous architecture
A method, apparatus, and computer usable program code for logical partitioning and virtualization in ...
- C++中placement new操作符
placement new是重载operator new的一个标准.全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本 ...
- beego中各类数据库连接方式
beego 框架是优秀得go REST API开发框架.下面针对beego中各类数据库连接操作做一个总结. 1. orm连接方式 beego中的orm操作支持三种数据库:mysql,sqlite3,p ...
- VC除零异常(错误)捕获
// testFinally.cpp : Defines the entry point for the console application. // #include "stdafx.h ...
- sql语句计算出每个月的天数
原文:sql语句计算出每个月的天数 从当前月-11个月开始,到当前月为止,用一个sql语句计算出每个月的天数. SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-LEVEL+1 ...
- .Net中使用数据库(sqlite)的大体流程(简单向)
说来数据库,各种语言各种数据库在操作上大体无异,基本都是连接数据库.操作数据库.关闭数据库连接的流程,不过Sqlite由于是单文件数据库,相比其他服务器的数据库连接更简单,只需要给定数据库文件的路径即 ...
- PHP获得指定日期所在星期的第一天和最后一天
function getdays($day){ $lastday=date('Y-m-d',strtotime("$day Sunday")); $firstday=date('Y ...
- NPOI 替换word模版
private void Button_Click(object sender, RoutedEventArgs e) { string fileName = @"C:\Users\Admi ...