假如数据表为Demo,这里中的最大值、最小值、平均值的计算要单位一致,如果单位不一致计算有误。这里给出的只是命令,命令使用,需要依据实际环境调整。因为hadoop删除处理大块文件,碎片化文件过多会严重消耗集群资源,影响查询效率。
获取表当前分区数
hadoop fs -ls hdfs://nameservice1/inceptor1/user/hive/warehouse/Demo | wc -l
获取表当前分区最小值
hadoop fs -du -h hdfs://nameservice1/inceptor1/user/hive/warehouse/risk.db/hive/Demo | sort -n |sed -n '1p'
获取表当前分区最大值
hadoop fs -du -h hdfs://nameservice1/inceptor1/user/hive/warehouse/Demo | sort -n |sed -n '$p'
获取表分区平均值
hadoop fs -du -h hdfs://nameservice1/inceptor1/user/hive/warehouse/Demo | sort -n |awk '{sum+= $1}END{printf sum/NR "\n"}'