DatabricksのsparksqlでUDFを使いたいな~と思ったのですが、少し手間取ったので保存用にまとめておきます。
UDF(ユーザー定義関数)を定義する
例えばdatabricksで中間テーブルとかでよく使うテーブルの期間を関数で共通化
したい場合などは以下のように記述します。
CREATE OR REPLACE FUNCTION start_date() RETURNS STRING COMMENT '開始日を関数で共通化する' LANGUAGE SQL RETURN 20220801; CREATE OR REPLACE FUNCTION end_date() RETURNS STRING COMMENT '終了日を関数で共通化する' LANGUAGE SQL RETURN 20220831;
UDFをクエリ内で使用する
SELECT * FROM table WHERE BETWEEN start_date() AND end_date()
参照:https://qiita.com/taka_yayoi/items/80862e2f8d01e4306a79
How Databricks’ New SQL UDF Extends Spark SQL W/O the Usual Limitations
Learn more about Databricks’s new SQL UDF and how it makes UDFs within Spark SQL more performant, secure and versatile. Also includes tutorials on the use of sc...
コメント