DECLARE VARIABLE
説明
DECLARE VARIABLE ステートメントは、Spark で一時変数を生成するために使用されます。一時変数はセッションレベルでスコープされます。
定数式が許可される場所であればどこでも、変数名を指定して参照できます。session または system.session で変数を修飾しない限り、変数は Spark が名前を列または列エイリアスとして解決できなかった後にのみ解決されます。
一時変数は、永続化されたビュー、列のデフォルト式、生成された列式などの永続化されたオブジェクトでは参照できません。
構文
DECLARE [ OR REPLACE ] [ VAR | VARIABLE ]
variable_name [ data_type ] [ { DEFAULT | = } default_expr ]
パラメータ
-
OR REPLACE
指定された場合、既存の一時変数は存在すれば置き換えられます。
-
variable_name
生成される変数の名前を指定します。変数名は、オプションで
system.sessionまたはsessionで修飾できます。構文:
[ system . [ session .] ] variable_name -
data_type
オプションで変数のデータ型を定義します。指定されない場合、型はデフォルト式から派生します。
-
default_expr
宣言後に変数の値を初期化するために使用されるオプションの式です。式は、SET VAR を使用して変数が
DEFAULTにリセットされるたびに再評価されます。data_typeが指定されている場合、default_exprは変数型にキャスト可能である必要があります。data_typeが指定されていない場合は、デフォルトを指定する必要があり、その型が変数の型になります。デフォルト式が指定されない場合、変数はNULLで初期化されます。
例
-- The dense form of declaring a variable with default
DECLARE five = 5;
-- Declare a defined variable
DECLARE five = 55;
[VARIABLE_ALREADY_EXISTS] Cannot create the variable `system`.`session`.`five` because it already exists.
Choose a different name, or drop or replace the existing variable. SQLSTATE: 42723
-- Use `DECLARE OR REPLACE` to declare a defined variable
DECLARE OR REPLACE five = 55;
-- Explicitly declare the default value of a variable using the keyword `DEFAULT`
DECLARE VARIABLE size DEFAULT 6;
-- STRING variable initialized to `NULL`
DECLARE some_var STRING;