hive執(zhí)行計(jì)劃舉例

執(zhí)行計(jì)劃例子:

insert overwrite TABLE lpx SELECT t1.bar, t1.foo, t2.foo FROM pokes t1 JOIN invites t2 ON (t1.bar = t2.bar) ;

OK

ABSTRACT SYNTAX TREE:

? (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_TABREF (TOK_TABNAME pokes) t1) (TOK_TABREF (TOK_TABNAME invites) t2) (= (. (TOK_TABLE_OR_COL t1) bar) (. (TOK_TABLE_OR_COL t2) bar)))) (TOK_INSERT (TOK_DESTINATION (TOK_TAB (TOK_TABNAME lpx))) (TOK_SELECT (TOK_SELEXPR (. (TOK_TABLE_OR_COL t1) bar)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL t1) foo)) (TOK_SELEXPR (. (TOK_TABLE_OR_COL t2) foo)))))

STAGE DEPENDENCIES:

? Stage-1 is a root stage ? /根

? Stage-0 depends on stages: Stage-1 /0依賴1

? Stage-2 depends on stages: Stage-0 /2依賴0

STAGE PLANS:

Stage: Stage-1

Map Reduce//這個(gè)階段是一個(gè)mapreduce作業(yè)????? Alias -> Map Operator Tree:???//map操作樹,對(duì)應(yīng)map階段

t1

TableScan?? //掃描表獲取數(shù)據(jù) ??from加載表,描述中有行數(shù)和大小等

??????????? alias: t1???? //表別名

Reduce Output Operator?//這里描述map的輸出,也就是reduce的輸入。比如key,partition,sort等信息?

????????????? key expressions:??//t1表輸出到reduce階段的key信息

expr: bar

type: string

sort order: +? //一個(gè)排序字段,這個(gè)排序字段是key=bar,多個(gè)排序字段多個(gè)+

Map-reduce partition columns:? //partition的信息,由此也可以看出hive在join的時(shí)候會(huì)以join on后的列作為partition的列,以保證具有相同此列的值的行被分到同一個(gè)reduce中去

expr: bar

type: string

tag: 0???????????????????????? //對(duì)t1表打標(biāo)簽

value expressions:?? //t1表輸出到reduce階段的value信息

expr: foo

type: int

expr: bar

type: string

t2

TableScan

alias: t2

Reduce Output Operator

key expressions:

expr: bar

type: string

sort order: +

Map-reduce partition columns:

expr: bar

type: string

tag: 1

value expressions:

expr: foo

type: int

Reduce Operator Tree://reduce操作樹,相當(dāng)于reduce階段Join Operator

condition map:

Inner Join 0 to 1

????????? condition expressions:

??????????? 0 {VALUE._col0} {VALUE._col1} //對(duì)應(yīng)前面t1.bar, t1.foo

??????????? 1 {VALUE._col0} //對(duì)應(yīng)前面t2.foo

????????? handleSkewJoin: false

????????? outputColumnNames: _col0, _col1, _col5

Select Operator //篩選列,描述中有列名、類型,輸出類型、大小等。

expressions:

expr: _col1

type: string

expr: _col0

type: int

expr: _col5

????????????????? type: int

??????????? outputColumnNames: _col0, _col1, _col2 ? //為臨時(shí)結(jié)果字段按規(guī)則起的臨時(shí)字段名

File Output Operator //輸出結(jié)果到臨時(shí)文件中,描述介紹了壓縮格式、輸出文件格式。

compressed: false

GlobalTableId: 1

table:

input format: org.apache.hadoop.mapred.TextInputFormat

output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

name: default.lpx

? Stage: Stage-0

Move Operator //Stage-0簡單把結(jié)果從臨時(shí)目錄,移動(dòng)到表lpx相關(guān)的目錄。

tables:

replace: true

table:

input format: org.apache.hadoop.mapred.TextInputFormat

output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

name: default.lpx

Stage: Stage-2

Stats-Aggr Operator

========================================

========================================

從信息頭:

STAGE DEPENDENCIES:

Stage-1 is a root stage

Stage-0 depends on stages: Stage-1

Stage-2 depends on stages: Stage-0

從這里可以看出Plan計(jì)劃的Job任務(wù)結(jié)構(gòu),整個(gè)任務(wù)會(huì)分為3個(gè)Job執(zhí)行,第一個(gè)Job將由Stage-1構(gòu)成;

第二個(gè)Job處理由Stage-0構(gòu)成,Stage-0的處理必須依賴Stage-1階段的結(jié)果;

第三個(gè)Job處理由Stage-2構(gòu)成,Stage-2的處理必須依賴Stage-0階段的結(jié)果。

下面分別解釋Stage-1和Stage-0,執(zhí)行SQL可以分成兩步:(1)、SELECT t1.bar, t1.foo, t2.foo FROM pokes t1 JOIN invites t2 ON (t1.bar = t2.bar);

(2)

、insert overwrite TABLE lpx;

Stage: Stage-1對(duì)應(yīng)一次完整的Map Reduce任務(wù),包括:Map Operator Tree和Reduce Operator Tree兩步操作,Map Operator Tree對(duì)應(yīng)Map任務(wù),Reduce Operator Tree對(duì)應(yīng)Reduce任務(wù)。從Map Operator Tree階段可以看出進(jìn)行了兩個(gè)并列的操作t1和t2,分別SELECT t1.bar, t1.foo FROM t1;和SELECT t2.foo FROM t2;而且兩個(gè)Map任務(wù)分別產(chǎn)生了Reduce階段的輸入[Reduce Output Operator]。從Reduce Operator Tree分析可以看到如下信息,條件連接Map的輸出以及通過預(yù)定義的輸出格式生成符合default.lpx的存儲(chǔ)格式的數(shù)據(jù)存儲(chǔ)到HDFS中。在我們創(chuàng)建lpx表的時(shí)候,沒有指定該表的存儲(chǔ)格式,默認(rèn)會(huì)以Text為存儲(chǔ)格式,輸入輸出會(huì)以TextInputFormat與TextOutputFormat進(jìn)行讀寫:

table:

input format: org.apache.hadoop.mapred.TextInputFormat

output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

name: default.lpx

input format的值對(duì)應(yīng)org.apache.hadoop.mapred.TextInputFormat,這是因?yàn)樵陂_始的Map階段產(chǎn)生的臨時(shí)輸出文件是以TextOutputFormat格式保存的,自然Reduce的讀取是由TextInputFormat格式處理讀入數(shù)據(jù)。這些是由Hadoop的MapReduce處理細(xì)節(jié)來控制,而Hive只需要指定處理格式即可。

Serde值為org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe類,這時(shí)這個(gè)對(duì)象的保存的值為_col0, _col1, _col2,也就是我們預(yù)期要查詢的t1.bar, t1.foo, t2.foo,這個(gè)值具體的應(yīng)該為_col0+表lpx設(shè)置的列分割符+_col1+表lpx設(shè)置的列分割符+_col2。outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat可以知道output的處理是使用該類來處理的。

Stage-0對(duì)應(yīng)上面提到的第二步操作。這時(shí)stage-1產(chǎn)生的臨時(shí)處理文件舉例如tmp,需要經(jīng)過stage-0階段操作處理到lpx表中。Move Operator代表了這并不是一個(gè)MapReduce任務(wù),只需要調(diào)用MoveTask的處理就行,在處理之前會(huì)去檢查輸入文件是否符合lpx表的存儲(chǔ)格式。

hive執(zhí)行計(jì)劃作用

分析作業(yè)執(zhí)行過程,優(yōu)化作業(yè)執(zhí)行流程,提升作業(yè)執(zhí)行效率;例如,數(shù)據(jù)過濾條件從reduce端提前到map端,有效減少map/reduce間shuffle數(shù)據(jù)量,提升作業(yè)執(zhí)行效率;

提前過濾數(shù)據(jù)數(shù)據(jù)集,減少不必要的讀取操作;例如: hive join操作先于where條件顧慮,將分區(qū)條件放入on語句中,能夠有效減少輸入數(shù)據(jù)集;

執(zhí)行計(jì)劃分析問題hql

select a.*, b.cust_uid

from ods_ad_bid_deliver_info b join mds_ad_algo_feed_monitor_data_table a

where a.dt<=20140101 and a.dt<=20140108 and key='deliver_id_bucket_id' and a.dt=b.dt and a.key_slice=b.deliver_id

==========================================================================

==========================================================================

執(zhí)行計(jì)劃:

抽象語法樹:

ABSTRACT SYNTAX TREE:

? (TOK_QUERY (TOK_FROM (TOK_JOIN (TOK_TABREF (TOK_TABNAME ods_ad_bid_deliver_info) b) (TOK_TABREF (TOK_TABNAME mds_ad_algo_feed_monitor_data_table) a))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_ALLCOLREF (TOK_TABNAME a))) (TOK_SELEXPR (. (TOK_TABLE_OR_COL b) cust_uid))) (TOK_WHERE (and (and (and (and (<= (. (TOK_TABLE_OR_COL a) dt) 20140101) (<= (. (TOK_TABLE_OR_COL a) dt) 20140108)) (= (TOK_TABLE_OR_COL key) 'deliver_id_bucket_id')) (= (. (TOK_TABLE_OR_COL a) dt) (. (TOK_TABLE_OR_COL b) dt))) (= (. (TOK_TABLE_OR_COL a) key_slice) (. (TOK_TABLE_OR_COL b) deliver_id))))))

STAGE DEPENDENCIES:

? Stage-1 is a root stage

? Stage-0 is a root stage

STAGE PLANS:

? Stage: Stage-1

??? Map Reduce

????? Alias -> Map Operator Tree:

??????? a

?????????TableScan

??????????? alias: a

???????????Filter Operator

????????????? predicate:

????????????????? expr: (key = 'deliver_id_bucket_id')?//按key指定值在map階段過濾

????????????????? type: boolean

?????????????Reduce Output Operator

??????????????? sort order:

??????????????? tag: 1

??????????????? value expressions:?//select *導(dǎo)致輸出到reduce的數(shù)據(jù)是全部的列信息

?????????????????????expr: key

????????????????????? type: string

????????????????????? expr: key_slice

????????????????????? type: string

????????????????????? expr: billing_mode_slice

????????????????????? type: string

????????????????????? expr: bucket_id

????????????????????? type: string

????????????????????? expr: ctr

????????????????????? type: string

????????????????????? expr: ecpm

????????????????????? type: string

????????????????????? expr: auc

????????????????????? type: string

????????????????????? expr: pctr

????????????????????? type: string

????????????????????? expr: pctr_ctr

????????????????????? type: string

????????????????????? expr: total_pv

????????????????????? type: string

????????????????????? expr: total_click

????????????????????? type: string

????????????????????? expr: dt

????????????????????? type: string

??????? b

?????????TableScan

??????????? alias: b

???????????Reduce Output Operator

????????????? sort order:

????????????? tag: 0

????????????? value expressions:

??????????????????? expr: deliver_id

??????????????????? type: string

??????????????????? expr: cust_uid

??????????????????? type: string

??????????????????? expr: dt

??????????????????? type: string

????? Reduce Operator Tree:

???????Join Operator

????????? condition map:

?????????????? Inner Join 0 to 1

????????? condition expressions:

??????????? 0 {VALUE._col0} {VALUE._col6} {VALUE._col35}

??????????? 1 {VALUE._col0} {VALUE._col1} {VALUE._col2} {VALUE._col3} {VALUE._col4} {VALUE._col5} {VALUE._col6} {VALUE._col7} {VALUE._col8} {VALUE._col9} {VALUE._col10} {VALUE._col11}

????????? handleSkewJoin: false

????????? outputColumnNames: _col0, _col6, _col35, _col38, _col39, _col40, _col41, _col42, _col43, _col44, _col45, _col46, _col47, _col48, _col49

?????????Filter Operator

??????????? predicate:

???????????????expr: (((((_col49 <= 20140101) and (_col49 <= 20140108)) and (_col38 = 'deliver_id_bucket_id')) and (_col49 = _col35)) and (_col39 = _col0))

??????????????? type: boolean

???????????Select Operator

????????????? expressions:

??????????????????? expr: _col38

??????????????????? type: string

??????????????????? expr: _col39

??????????????????? type: string

??????????????????? expr: _col40

??????????????????? type: string

??????????????????? expr: _col41

??????????????????? type: string

??????????????????? expr: _col42

??????????????????? type: string

??????????????????? expr: _col43

??????????????????? type: string

??????????????????? expr: _col44

??????????????????? type: string

??????????????????? expr: _col45

??????????????????? type: string

??????????????????? expr: _col46

??????????????????? type: string

??????????????????? expr: _col47

??????????????????? type: string

??????????????????? expr: _col48

??????????????????? type: string

??????????????????? expr: _col49

??????????????????? type: string

??????????????????? expr: _col6

??????????????????? type: string

????????????? outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12

?????????????File Output Operator

??????????????? compressed: false

??????????????? GlobalTableId: 0

??????????????? table:

??????????????????? input format: org.apache.hadoop.mapred.TextInputFormat

??????????????????? output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

? Stage: Stage-0

??? Fetch Operator

????? limit: -1

優(yōu)化之后hql:

select a.*, b.cust_uid

from ods_ad_bid_deliver_info b

join mds_ad_algo_feed_monitor_data_table a

on(a.dt<=20140101 and a.dt<=20140108 and a.dt=b.dt and a.key_slice=b.deliver_id and a.key='deliver_id_bucket_id')

=================================================================

=================================================================

執(zhí)行計(jì)劃:

抽象語法樹:

STAGE DEPENDENCIES:

? Stage-1 is a root stage

? Stage-0 is a root stage

STAGE PLANS:

? Stage: Stage-1

??? Map Reduce

????? Alias -> Map Operator Tree:

??????? a

??????????TableScan

??????????? alias: a

???????????Filter Operator

????????????? predicate:

????????????????? expr: (key = 'deliver_id_bucket_id')

????????????????? type: boolean

?????????????Filter Operator

??????????????? predicate:

??????????????????? expr: (dt <= 20140101)? //分區(qū)過濾條件在map端生效

??????????????????? type: boolean

???????????????Filter Operator

????????????????? predicate:

????????????????????? expr: (dt <= 20140108)? //分區(qū)過濾條件在map端生效

????????????????????? type: boolean

????????????????? Filter Operator

??????????????????? predicate:

??????????????????????? expr: (key = 'deliver_id_bucket_id')

??????????????????????? type: boolean

??????????????????? Reduce Output Operator

????????????????????? key expressions:

??????????????????????????? expr: dt

??????????????????????????? type: string

??????????????????????????? expr: key_slice

??????????????????????????? type: string

?????????? ???????????sort order: ++

????????????????????? Map-reduce partition columns:

??????????????????????????? expr: dt

??????????????????????????? type: string

??????????????????????????? expr: key_slice

??????????????????????????? type: string

?????????????? ???????tag: 1

????????????????????? value expressions:

??????????????????????????? expr: key

??????????????????????????? type: string

??????????????????????????? expr: key_slice

??????????????????????????? type: string

??????????????????????????? expr: billing_mode_slice

??????????????????????????? type: string

??????????????????????????? expr: bucket_id

??????????????????????????? type: string

??????????????????????????? expr: ctr

??????????????????????????? type: string

??????????????????????????? expr: ecpm

??????????????????????????? type: string

??????????????????????????? expr: auc

??????????????????????????? type: string

??????????????????????????? expr: pctr

??????????????????????????? type: string

??????????????????????????? expr: pctr_ctr

??????????????????????????? type: string

??????????????????????????? expr: total_pv

??????????????????????????? type: string

??????????????????????????? expr: total_click

??????????????????????????? type: string

??????????????????????????? expr: dt

?????? ?????????????????????type: string

??????? b

??????????TableScan

??????????? alias: b

??????????? Reduce Output Operator

????????????? key expressions:

??????????????????? expr: dt

??????????????????? type: string

??????????????????? expr: deliver_id

???? ???????????????type: string

????????????? sort order: ++

????????????? Map-reduce partition columns:

??????????????????? expr: dt

??????????????????? type: string

??????????????????? expr: deliver_id

??????????????????? type: string

????????????? tag: 0

? ????????????value expressions:

??????????????????? expr: cust_uid

??????????????????? type: string

????? Reduce Operator Tree:

??????? Join Operator

????????? condition map:

?????????????? Inner Join 0 to 1

????????? condition expressions:

??????????? 0 {VALUE._col6}

??????????? 1 {VALUE._col0} {VALUE._col1} {VALUE._col2} {VALUE._col3} {VALUE._col4} {VALUE._col5} {VALUE._col6} {VALUE._col7} {VALUE._col8} {VALUE._col9} {VALUE._col10} {VALUE._col11}

????????? handleSkewJoin: false

????????? outputColumnNames: _col6, _col38, _col39, _col40, _col41, _col42, _col43, _col44, _col45, _col46, _col47, _col48, _col49

????????? Select Operator

??????????? expressions:

????????????????? expr: _col38

????????????????? type: string

????????????????? expr: _col39

????????????????? type: string

????????????????? expr: _col40

????????????????? type: string

????????????????? expr: _col41

????????????????? type: string

????????????????? expr: _col42

????????????????? type: string

????????????????? expr: _col43

?????????????????type: string

????????????????? expr: _col44

????????????????? type: string

????????????????? expr: _col45

????????????????? type: string

????????????????? expr: _col46

????????????????? type: string

????????????????? expr: _col47

????????????????? type: string

????????????????? expr: _col48

????????????????? type: string

????????????????? expr: _col49

????????????????? type: string

????????????????? expr: _col6

????????????????? type: string

??????????? outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12

??????????? File Output Operator

????????????? compressed: false

????????????? GlobalTableId: 0

????????????? table:

????????????????? input format: org.apache.hadoop.mapred.TextInputFormat

????????????????? output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

? Stage: Stage-0

??? Fetch Operator

????? limit: -1

例子:

select?*?from?emp e

left?join?dept d?on?e.deptno=d.deptno

where d.dt='2018-06-04';

花費(fèi)時(shí)間:Time taken: 44.401 seconds, Fetched: 17 row(s)

執(zhí)行計(jì)劃:

STAGE DEPENDENCIES:

? Stage-4 is a root stage

? Stage-3 depends on stages: Stage-4

? Stage-0 depends on stages: Stage-3

STAGE PLANS:

? Stage: Stage-4

? ? Map Reduce Local Work ?/本地執(zhí)行

? ? ? Alias -> Map Local Tables:

? ? ? ? d

? ? ? ? ? Fetch Operator

? ? ? ? ? ? limit: -1

? ? ? Alias -> Map Local Operator Tree:

? ? ? ? d

? ? ? ? ? TableScan

? ? ? ? ? ? alias: d

? ? ? ? ? ? Statistics: Num rows: 1 Data size: 168 Basic stats: PARTIAL Column stats: PARTIAL

HashTable Sink Operator/ReduceSinkOperator將Map端的字段組合序列化為Reduce Key/value, Partition Key,只可能出現(xiàn)在Map階段,同時(shí)也標(biāo)志著Hive生成的MapReduce程序中Map階段的結(jié)束。

? ? ? ? ? ? ? keys:

? ? ? ? ? ? ? ? 0 deptno (type: string)

? ? ? ? ? ? ? ? 1 deptno (type: string)

? Stage: Stage-3

? ? Map Reduce

? ? ? Map Operator Tree:

? ? ? ? ? TableScan

? ? ? ? ? ? alias: e

? ? ? ? ? ? Statistics: Num rows: 1 Data size: 757 Basic stats: PARTIAL Column stats: PARTIAL

? ? ? ? ? ? Map Join Operator

? ? ? ? ? ? ? condition map:

? ? ? ? ? ? ? ? ? ?Left Outer Join0 to 1

? ? ? ? ? ? ? keys:

? ? ? ? ? ? ? ? 0 deptno (type: string)

? ? ? ? ? ? ? ? 1 deptno (type: string)

? ? ? ? ? ? ? outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col12, _col13, _col14, _col15

? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? Filter Operator

? ? ? ? ? ? ? ? predicate: (_col15 = '2018-06-04') (type: boolean)

? ? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? ? Select Operator

? ? ? ? ? ? ? ? ? expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string), _col8 (type: str

ing), _col12 (type: string), _col13 (type: string), _col14 (type: string), '2018-06-04' (type: string)? ? ? ? ? ? ? ? ? outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12

? ? ? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? ? ? File Output Operator

? ? ? ? ? ? ? ? ? ? compressed: false

? ? ? ? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? ? ? ? table:

? ? ? ? ? ? ? ? ? ? ? ? input format: org.apache.hadoop.mapred.TextInputFormat

? ? ? ? ? ? ? ? ? ? ? ? output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

? ? ? ? ? ? ? ? ? ? ? ? serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

? ? ? Local Work:

? ? ? ? Map Reduce Local Work

? Stage: Stage-0

? ? Fetch Operator

? ? ? limit: -1

? ? ? Processor Tree:

? ? ? ? ListSink

select?*?from?emp e

left?join?dept d?on (e.deptno=d.deptno and? d.dt='2018-06-04');

花費(fèi)時(shí)間:Time taken: 23.804 seconds, Fetched: 17 row(s)

STAGE DEPENDENCIES:

? Stage-4 is a root stage

? Stage-3 depends on stages: Stage-4

? Stage-0 depends on stages: Stage-3

STAGE PLANS:

? Stage: Stage-4

? ? Map Reduce Local Work

? ? ? Alias -> Map Local Tables:

? ? ? ? d

? ? ? ? ? Fetch Operator

? ? ? ? ? ? limit: -1

? ? ? Alias -> Map Local Operator Tree:

? ? ? ? d

? ? ? ? ? TableScan

? ? ? ? ? ? alias: d

? ? ? ? ? ? filterExpr: (dt = '2018-06-04') (type: boolean)

? ? ? ? ? ? Statistics: Num rows: 1 Data size: 84 Basic stats: PARTIAL Column stats: PARTIAL

? ? ? ? ? ? HashTable Sink Operator

? ? ? ? ? ? ? keys:

? ? ? ? ? ? ? ? 0 deptno (type: string)

? ? ? ? ? ? ? ? 1 deptno (type: string)

? Stage: Stage-3

? ? Map Reduce

? ? ? Map Operator Tree:

? ? ? ? ? TableScan

? ? ? ? ? ? alias: e

? ? ? ? ? ? Statistics: Num rows: 1 Data size: 757 Basic stats: PARTIAL Column stats: PARTIAL

? ? ? ? ? ? Map Join Operator

? ? ? ? ? ? ? condition map:

? ? ? ? ? ? ? ? ? ?Left Outer Join0 to 1

? ? ? ? ? ? ? keys:

? ? ? ? ? ? ? ? 0 deptno (type: string)

? ? ? ? ? ? ? ? 1 deptno (type: string)

? ? ? ? ? ? ? outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col12, _col13, _col14, _col15

? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? Select Operator

? ? ? ? ? ? ? ? expressions: _col0 (type: string), _col1 (type: string), _col2 (type: string), _col3 (type: string), _col4 (type: string), _col5 (type: string), _col6 (type: string), _col7 (type: string), _col8 (type: strin

g), _col12 (type: string), _col13 (type: string), _col14 (type: string), _col15 (type: string)? ? ? ? ? ? ? ? outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6, _col7, _col8, _col9, _col10, _col11, _col12

? ? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? ? File Output Operator

? ? ? ? ? ? ? ? ? compressed: false

? ? ? ? ? ? ? ? ? Statistics: Num rows: 1 Data size: 832 Basic stats: COMPLETE Column stats: NONE

? ? ? ? ? ? ? ? ? table:

? ? ? ? ? ? ? ? ? ? ? input format: org.apache.hadoop.mapred.TextInputFormat

? ? ? ? ? ? ? ? ? ? ? output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

? ? ? ? ? ? ? ? ? ? ? serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

? ? ? Local Work:

? ? ? ? Map Reduce Local Work

? Stage: Stage-0

? ? Fetch Operator

? ? ? limit: -1

? ? ? Processor Tree:

? ? ? ? ListSink

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容