例如:一张分区表
表名: 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是有缺陷的,比如一个文件如果是空文件,还是会被查出来



