2016-07-21 25 views
0

ハイブの最後から二番目のパーティション(HQL)を取得する方法:私が最初に取得することができますどのように今私は、以下のパーティションを持つハイブのテーブルを持っている

part_date='01-12-2016'

part_date='07-12-2016'

part_date='04-12-2016'

ハイブクエリの最新のパーティションよりも小さいパーティション。パーティションの値は、データがテーブルに取り込まれた日付であると仮定します。 この場合、part_date = '04 -12-2016 'にする必要があります。

ので、クエリは次のようにする必要があります:あなたはrow_numberウィンドウ関数を使用すると、2番目に新しい行を取得することができます

select part_date from table_A where part_date > second_last_partition(ie 04-12-2016);

事前

答えて

1

に感謝します。

select part_date 
from (select part_date,row_number() over(order by part_date desc) as rn 
     from table_A) t 
where rn = 2 

私はpart_date列が異なると仮定します。そうでない場合は、dense_rank機能を使用する必要があります。

+0

こんにちは、お返事ありがとうございますが、パーティション内のデータ全体ではなく、最後の2番目のパーティション値を取得しようとしています。私は質問を編集することができます。 – Neethu

+0

編集された回答を参照してください。 –

+0

ありがとうございます。しかし、hdfsの0バイトのファイルについては、私はwokを得ることができません。ハイブは0バイトのファイルを読み込んでパーティションの値が見つからないので、これを回避する方法はありますか? – Neethu

関連する問題