Hiveでカレンダーテーブルを簡単に作る
集計処理でカレンダーテーブルがあると何かと便利なのでカレンダーテーブルを作りたいなと思ったのですが、HiveにはPostgreSQLのgenerate_seriesのような関数がない。。。
UDFなら作っている人がいそうな気がしたので調べてみると、Hivemall*1のUDFにgenerate_series関数*2があるのでそれを使って作ります。
Hivemallの使いどこはそこじゃない感がありますが、簡単にカレンダーテーブルが作れます。 カレンダーテーブルをベースにJOIN、nvl(Prestoだとnullif)を使えば、window関数で抜けた日付があっても安心ですね。
HivemallはSQLで機械学習とかできたりして何気にスゴイのでは。SQLで完結できるのでかなりおっさん向けな感じかなと思ったり。
Enjoy!