jav*_*dba 12 hadoop hive table-statistics
我在hive中计算统计数据时看到的语法似乎表明标题问题的答案是"不":
ANALYZE TABLE [TABLENAME] PARTITION(parcol1=…, partcol2=….) COMPUTE STATISTICS
Run Code Online (Sandbox Code Playgroud)
但是,我想把它扔出去,因为我很惊讶,总是需要编写一个脚本迭代分区来生成每个分区的语句.我们现在在这张小桌子上有大约一千个分区,它将按数量级增长.
顺便说一下,我没有指定分区就尝试了以下内容:
hive> analyze table metrics compute statistics;
FAILED: SemanticException [Error 10115]: Table is partitioned and partition specification is needed
Run Code Online (Sandbox Code Playgroud)
是的你可以.
至少从我正在使用的hive v0.13开始.只需尝试没有特定值的分区规范语法(无=…位)
如果您正在使用FOR COLUMNS,那么您不能因为该错误:https://issues.apache.org/jira/browse/HIVE-4861
我在最新的 Hive 1.2 上,以下命令工作得很好
hive> analyze table member partition(day) compute statistics noscan;
Partition mobi_mysql.member{day=20150831} stats: [numFiles=7, numRows=-1, totalSize=4735943322, rawDataSize=-1]
Partition mobi_mysql.member{day=20150901} stats: [numFiles=7, numRows=117512, totalSize=19741804, rawDataSize=0]
Partition mobi_mysql.member{day=20150902} stats: [numFiles=7, numRows=-1, totalSize=17734601, rawDataSize=-1]
Partition mobi_mysql.member{day=20150903} stats: [numFiles=7, numRows=-1, totalSize=13091084, rawDataSize=-1]
OK
Time taken: 2.089 seconds
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22039 次 |
| 最近记录: |