SparkSQL で時系列仮想データテーブルを作る関数

はじめに

タイトル通り、SparkSQL で時系列仮想データテーブルを作る関数です。以下のような方を想定。

  • 最近 Spark さわり始めた
  • 時系列データで Window 処理をバッチ的に行いたい
  • SparkSQL で普通にクエリが書けると聞いたけど、
    • MySQL でのいつものメソッドは使えなさそう
    • PostgreSQL の Generate Series が使えればいいのに

関数

こんな感じで書きました。開始日、終了日、秒単位のインターバル、テーブルの行名を引数にしています。

使用例

1秒ごと

image.png

1時間ごと

image.png

おわりに

とりあえずは動作しますが、、

  • この関数使えば一発じゃん
  • こんな非効率なことして…

という方、情報いただけると大変うれしいです。

参考リンク

Spark Programming Guide