假如數據表爲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"}'