2017-05-09 11 views
0

ハイブでLATERAL VIEW EXPLODEを実行した後でWHERE句を実行するかどうかを理解しようとしています。側面図が爆発する前または後に例えばハイブラテラルビューExplode with where句 - 最初に実行されるもの

私は

SELECT * 
FROM 
    (
    SELECT 
     a1, 
     a2, 
     b.ds, 
     conv_list.threshold_conv[0] 
      AS t 
    FROM 
     t1 b 
    LATERAL VIEW EXPLODE({list}) 
       conv_list as threshold_conv 
    WHERE 
     b.ds between '{DATE-29}' and '{DATE}' 
) 

を持っている場合は、フィルタの実行をDSのだろうか?句があなたのサブクエリの外でも、あなたならば

+1

なぜ重要ですか? –

+0

あなたはexplainコマンドを使って詳細を得ることができます。しかし、私の理解によると、最初にLATERAL VIEW EXPLODEが実行されます。 –

+1

@sandeeprawat - たとえば、パーティション化された列のフィルタリングの場合、テーブル全体がスキャンされ、行は爆発し、その後、フィルタリングが行われますか? –

答えて

2
  • あなたのフィルターカラムが、それはパーティショニングの主な目的は、あなたのテーブル内のパーティションである場合は、(述語プッシュダウン)
  • 側面図は高価なことができます場合によっては、このような理由で、Hiveは、側面図を適用する前にフィルタを適用します。同じクエリではないため、次の実行計画を参照してください。今

     STAGE PLANS: Stage: Stage-1 
        Map Reduce 
         Map Operator Tree: 
          TableScan 
          alias: a 
          filterExpr: ((mycolumndpartitioned > 0) and (mycolumn= 112623934)) (type: boolean) 
          Statistics: Num rows: 23953585 Data size: 52793067242 Basic stats: COMPLETE Column stats: NONE 
          Filter Operator 
           predicate: (mycolumn= 112623934) (type: boolean) 
           Statistics: Num rows: 11976792 Data size: 26396532519 Basic stats: COMPLETE Column stats: NONE 
           Lateral View Forward 
           Statistics: Num rows: 11976792 Data size: 26396532519 Basic stats: COMPLETE Column stats: NONE 
           Select Operator 
            Statistics: Num rows: 11976792 Data size: 26396532519 Basic stats: COMPLETE Column stats: NONE 
            Lateral View Join Operator 
            outputColumnNames: _col13 
            Statistics: Num rows: 23953584 Data size: 52793065038 Basic stats: COMPLETE Column stats: NONE 
            Select Operator 
             expressions: _col13.myArray (type: string) 
             outputColumnNames: _col0 
             Statistics: Num rows: 23953584 Data size: 52793065038 Basic stats: COMPLETE Column stats: NONE 
             File Output Operator 
             compressed: false 
             Statistics: Num rows: 23953584 Data size: 52793065038 Basic stats: COMPLETE Column stats: NONE 
    
  • あなたのフィルタが爆発し、配列からいくつかのフィールドを使用している場合、私はハイブが爆発したデータから任意の列を使用していないすべての可能なフィルタを適用しようとすると仮定します前に、側面図を適用し、分解されたデータにフィルタを適用してください。

関連する問題