栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

#如何用shell查询一张hive的表是否为空表

#如何用shell查询一张hive的表是否为空表

例如:一张分区表
表名: table_ku.table_name
分区: t-1天,每天一个分区,10000条数据

方案一:调用hive的方法去统计

方法1:统计一共有多少条数据,为0条说明表格为空
file_memory=`hive -e "select count(1) from table_ku.table where dt=${yesterday}"|sed -n '2p'`#导出统计值

echo file_memory
输出10000

方法2:统计是否有数据,有数据证明不为空
file_memory=`hive -e "select * from table_ku.table where dt=${yesterday} limit 10"|wc -l`
echo file_memory
输出:10

这里方法2的速度要更快一些

方案二:直接去查hdhf里的文件
表对应的地址如果不知道,可以使用show create table 去查

方法3:统计一个分区文件下文件的个数
file_memory=`hadoop fs -ls /user/table_ku.db/table_name/dt=${yesterday} 2>/dev/null|wc -l`


方法4:统计一个分区文件下所有文件的大小
file_memory=`hadoop fs -ls /user/table_ku.db/table_name/dt=${yesterday} 2>/dev/null|awk -F "" '{sum+=$5}END{print sum}'`

方法3相较于方法4是有缺陷的,比如一个文件如果是空文件,还是会被查出来
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/673848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号