Hive: не удалось понять статистику в ПРИМЕРЕ результата - PullRequest
0 голосов
/ 12 октября 2018

Я использую Hive на MRv2.Я подготовил таблицу, которая содержит миллиард кортежей.Я написал запрос как EXPLAIN select count(*) from table.Результат EXPLAIN ниже:

1> STAGE DEPENDENCIES:   Stage-1 is a root stage   Stage-0 depends on
2> stages: Stage-1
3> 
4> STAGE PLANS:   Stage: Stage-1
5>     Map Reduce
6>       Map Operator Tree:
7>           TableScan
8>             alias: table
9>             Statistics: Num rows: 1 Data size: 39328468992 Basic stats: COMPLETE Column stats: COMPLETE
10>             Select Operator
11>               Statistics: Num rows: 1 Data size: 39328468992 Basic stats: COMPLETE Column stats: COMPLETE
13>               Group By Operator
14>                 aggregations: count()
15>                 mode: hash
16>                 outputColumnNames: _col0
17>                 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
18>                 Reduce Output Operator
19>                   sort order: 
20>                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
21>                   value expressions: _col0 (type: bigint)
22>       Reduce Operator Tree:
23>         Group By Operator
24>           aggregations: count(VALUE._col0)
25>           mode: mergepartial
26>           outputColumnNames: _col0
27>           Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
28>           File Output Operator
29>             compressed: false
30>             Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
31>             table:
32>                 input format: org.apache.hadoop.mapred.TextInputFormat
33>                 output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
34>                 serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
35> 
36>   Stage: Stage-0
37>     Fetch Operator
38>       limit: -1
39>       Processor Tree:
40>         ListSink

В статистике в строке 9, хотя в этой таблице содержится миллиард кортежей, Num rows равно 1.

Пожалуйста, научите меня, как статистика приводит кEXPLAIN рассчитывается.

1 Ответ

0 голосов
/ 14 октября 2018

Это может быть внешняя таблица. Поскольку Hive не знает о метаданных, он показал одну строку.

Пример:

Map Operator Tree:
      TableScan
        alias: test_ext_tb
        Statistics: **Num rows: 1 Data size: 452001824** Basic stats: COMPLETE Column stats: COMPLETE
        Select Operator
          Statistics: Num rows: 1 Data size: 452001824 Basic stats: COMPLETE Column stats: COMPLETE
          Group By Operator
            aggregations: count()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...