V3.1 以降、Hologres は hg_spark_funcs 拡張機能を導入することで、さまざまな Spark 互換関数をサポートしています。この Topic では、Hologres の Spark 互換関数とそれらのユースケースについて説明します。
関数 | 説明 |
逆双曲線余弦を計算します。 | |
逆双曲線正弦を計算します。 | |
双曲線正接を計算します。 | |
指定された値 x が指定された範囲 [min, max] 内にあるかどうかを確認します。 | |
バイナリ値を計算します。 | |
バイナリ計算後のビット数を取得します。 | |
ビット単位の論理 AND 演算を実行します。 | |
ビット単位の論理 NOT 演算を実行します。 | |
ビット単位の論理 OR 演算を実行します。 | |
ビット単位の論理 XOR 演算を実行します。 | |
加算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。 | |
除算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。 | |
乗算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。 | |
減算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。 | |
パラメーター x にパラメーター y が含まれているかどうかを確認します。 | |
文字列の数値をある基数(基数ソース)から別の基数(基数ターゲット)に変換します。 | |
双曲線余弦を計算します。 | |
CRC32 ハッシュ値を計算します。 | |
余割値を計算します。 | |
最初に入力パラメーターが2番目に入力パラメーターで終わるかどうかを確認します。 | |
オイラー数(自然対数の底)の累乗から 1 を引いた値、つまり「exp(x) - 1」を計算します。 | |
カンマ区切りの配列文字列内で指定された文字列の位置を検索し、1 から始まるインデックス値を返します。 | |
UNIX エポック (1970-01-01 00:00:00 UTC) からの経過秒数 (BIGINT 型) を指定された時間形式に変換します。 | |
入力データを16進数形式に変換します。 | |
2つの値の2乗和の平方根を計算します。 | |
指定された配列に指定された値が存在するかどうかを確認します。 | |
データが数値ではない (NaN) かどうかを確認します。 | |
2 つの文字列間のレーベンシュタイン距離 (編集距離) を計算します。これは、一方の文字列をもう一方の文字列に変換するために必要な 1 文字編集操作の最小回数を表します。 | |
指定された値の10を底とする対数を計算します。 | |
指定された値に 1 を加えた値の自然対数を計算します。 | |
指定された値の2を底とする対数を計算します。 | |
Bloom Filter に指定された値が存在する可能性があるかどうかを確認します。 | |
単調増加する一意の 64 ビット整数を生成します。これらの整数は連続していません。 | |
パラメーター x を y で除算した正の剰余を計算します。 | |
除算演算の剰余を計算します。 | |
最も近い整数を計算します。 | |
正割値を計算します。この関数は三角関数の1種であり、角度の余弦の逆数として表されます。 | |
文字列の SHA-1 ハッシュ値を計算し、結果を16進数文字列に変換します。 | |
文字列の SHA-2 ハッシュ値 (SHA-224、SHA-256、SHA-384、および SHA-512) を計算し、結果を16進数文字列に変換します。 | |
ターゲット値を左シフトします。 | |
ターゲット値を右シフトします。 | |
双曲線正弦を計算します。 | |
文字列の Soundex コードを生成します。 | |
最初のパラメーターが2番目のパラメーターで始まるかどうかを確認します。 | |
区切り文字の n 番目の出現までの文字列の部分を取得します。 | |
16進数文字列を VARBIT に変換します。 | |
URL のエンコードされた値をエスケープ解除します。 | |
エンコードによってエスケープします。 |
拡張機能をインストールする
Spark 関数を使用する前に、必要な拡張機能をインストールするために、スーパーユーザーとしてデータベースで次の文を実行する必要があります。この文は、データベースごとに一度だけ実行する必要があります。新しいデータベースを作成する場合は、文を再度実行する必要があります。
CREATE extension hg_spark_funcs;
この拡張機能は、hg_spark_funcs スキーマでのみ作成できます。別のスキーマを手動で指定することはできません。
サンプルデータ
この Topic の Spark 関数パラメーター x は、定数入力パラメーターをサポートしていません。この Topic のすべての例では、次のサンプルデータを使用します。
CREATE TABLE public.spark_test(a INT);
INSERT INTO public.spark_test VALUES (3);
Spark 関数
以下の関数を使用する前に、次のパラメーター設定を追加するか、関数名の前に「hg_spark_funcs.」というプレフィックスを追加してください。
SET search_path = 'hg_spark_funcs';
詳細については、「Spark 関数」をご参照ください。
ACOSH
説明: 逆双曲線余弦を計算します。
ACOSH(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT ACOSH(a) FROM public.spark_test;
次の結果が返されます:
acosh ------------------ 1.762747174039086
ASINH
説明: 逆双曲線正弦を計算します。
ASINH(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT ASINH(a) FROM public.spark_test; // public.spark_test から ASINH(a) を選択します。
次の結果が返されます。
asinh ------------------ 1.8184464592320668
ATANH
説明: 双曲線正接を計算します。
ATANH(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT ATANH(a) FROM public.spark_test;
次の結果が返されます。
atanh ------- NaN
BETWEEN
説明: 指定された値 x が指定された [min, max] 範囲内にあるかどうかを確認します。
hg_spark_funcs.BETWEEN(x, min, max)
説明BETWEEN は Hologres キーワードであるため、使用するときは「hg_spark_funcs.」というプレフィックスを追加する必要があります。
パラメータ
x: 必須。BIGINT 型がサポートされています。
min: 必須。指定された範囲の最小値。BIGINT 型がサポートされています。
max: 必須。指定された範囲の最大値。BIGINT 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。 x が指定された範囲内にある場合は、t (true) が返されます。それ以外の場合は、f (false) が返されます。
例
SELECT hg_spark_funcs.BETWEEN(a,2 ,4) FROM public.spark_test;
次の結果が返されます:
between --------- t
BIN
説明: バイナリ値を計算します。
BIN(x)
パラメータ
x: 必須。 BIGINT 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT BIN(a) FROM public.spark_test;
次の結果が返されます。
bin ----- 11
BIT_COUNT
説明: バイナリ計算後のビット数を取得します。
BIT_COUNT(x)
パラメータ
x: 必須。 BIGINT 型がサポートされています。
戻り値
INTEGER 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; -- public.spark_test から BIT_COUNT(a) を選択します。 SELECT BIT_COUNT(a) FROM public.spark_test;
次の結果が返されます。
bit_count ----------- 2
BITWISE_AND
説明: ビット単位の論理 AND 演算を実行します。
BITWISE_AND(x, y)
パラメータ
x および y: 必須。INTEGER 型がサポートされています。
戻り値
INTEGER 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT BITWISE_AND(a, 2) FROM public.spark_test;
次の結果が返されます。
bitwise_and ------------- 2
BITWISE_NOT
説明: ビット単位の論理 NOT 演算を実行します。
BITWISE_NOT(x)
パラメータ
x: 必須。 BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT BITWISE_NOT(a) FROM public.spark_test;
次の結果が返されます。
bitwise_not ------------- -4
BITWISE_OR
説明: ビット単位の論理 OR 演算を実行します。
BITWISE_OR(x, y)
パラメータ
x と y: 必須。BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT BITWISE_OR(a, 2) FROM public.spark_test;
次の結果が返されます:
bitwise_or ------------ 3
BITWISE_XOR
説明: ビット単位の論理 XOR 演算を実行します。
BITWISE_XOR(x, y)
パラメータ
x と y: 必須。INTEGER 型がサポートされています。
戻り値
INTEGER 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT BITWISE_XOR(a, 2) FROM public.spark_test;
次の結果が返されます:
bitwise_xor ------------- 1
CHECKED_ADD
説明: 加算を実行します。 この関数は、数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。
CHECKED_ADD(x, y)
パラメータ
x と y: 必須。 BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CHECKED_ADD(a, 2147483647) FROM public.spark_test;
次の結果が返されます。
--エラーメッセージの一部は次のとおりです。 ERROR: internal error: Run func: spark_checked_add fails with Exception: VeloxUserError
CHECKED_DIVIDE
説明: 除算を実行します。 この関数は、数値オーバーフローが発生した場合、サイレントオーバーフローではなくエラーを報告します。
CHECKED_DIVIDE(x, y)
パラメータ
x と y: 必須。 BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CHECKED_DIVIDE(a, 1/2147483647) FROM public.spark_test;
次の結果が返されます:
--エラーメッセージの一部は次のとおりです。 ERROR: internal error: Run func: spark_checked_divide fails with Exception: VeloxUserError
CHECKED_MULTIPLY
説明: 乗算を実行します。 この関数は、数値オーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。
CHECKED_MULTIPLY(x, y)
パラメータ
x と y: 必須。 BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CHECKED_MULTIPLY(a, 2147483647) FROM public.spark_test;
次の結果が返されます:
--エラーメッセージの一部は次のとおりです。 ERROR: internal error: Run func: spark_checked_multiply fails with Exception: VeloxUserError
CHECKED_SUBTRACT
説明: 減算を実行します。 この関数は、サイレントオーバーフローを起こす代わりに、数値オーバーフローが発生するとエラーを報告します。
CHECKED_SUBTRACT(x, y)
パラメータ
x と y: 必須。 BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CHECKED_SUBTRACT(a, -2147483647) FROM public.spark_test;
次の結果が返されます:
--エラーメッセージの一部は次のとおりです。 ERROR: internal error: Run func: spark_checked_subtract fails with Exception: VeloxUserError
CONTAINS
説明: パラメーター x にパラメーター y が含まれているかどうかを確認します。
CONTAINS(x, y)
パラメーター
x および y: 必須。TEXT 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。 x に y が含まれている場合は、t (true) が返されます。それ以外の場合は、f (false) が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CONTAINS(a::text, '3') FROM public.spark_test;
次の結果が返されます。
contains ---------- t
CONV
説明: 文字列の数値をある基数(基数元)から別の基数(基数先)に変換します。
CONV(x, n, m)
パラメータ
x: 必須。文字列の数値。TEXT 型がサポートされています。
n: 必須。基数元。INTEGER 型がサポートされています。
m: 必須。基数先。INTEGER 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CONV(a::text, 10, 2) FROM public.spark_test;
次の結果が返されます:
conv ------ 11
COSH
説明: 双曲線余弦を計算します。
COSH(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT COSH(a) FROM public.spark_test; // public.spark_test から COSH(a) を選択します。
次の結果が返されます。
cosh ------------------ 10.0676619957778
CRC32
説明: CRC32 ハッシュ値を計算します。
CRC32(x)
パラメータ
x: 必須。BYTEA 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CRC32(bin(a)::bytea) FROM public.spark_test;
次の結果が返されます。
crc32 ------------ 3596227959
CSC
説明: コセカント値を計算します。
CSC(x)
パラメータ
x: 必須。 DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT CSC(a) FROM public.spark_test;
次の結果が返されます:
csc ------------------ 7.08616739573719
ENDSWITH
説明: 最初の入力パラメーターが 2 番目の入力パラメーターで終わるかどうかを確認します。
ENDSWITH(x, y)
パラメーター
x および y: 必須。TEXT 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。パラメーター x がパラメーター y で終わる場合は、t (true) が返されます。それ以外の場合は、f (false) が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT ENDSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;
次の結果が返されます:
endswith ---------- t
EXPM1
説明: 自然対数の底であるオイラー数の累乗から 1 を引いた値「exp(x) - 1」を計算します。
EXPM1(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT EXPM1(a) FROM public.spark_test;
次の結果が返されます。
expm1 ------------------ 19.0855369231877
FIND_IN_SET
説明: 指定された文字列がカンマ区切りの配列文字列の何番目にあるかを検索し、1 から始まるインデックス値を返します。
FIND_IN_SET(x, y)
パラメータ
x と y: 必須。TEXT 型がサポートされています。
戻り値
INTEGER 型の値が返されます。指定された文字列が見つからない場合は、0 が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT FIND_IN_SET(a::text, 'a,b,c,2') FROM public.spark_test;
次の結果が返されます。
find_in_set ------------- 4
FROM_UNIXTIME
説明: UNIXエポック ( 1970-01-01 00:00:00 UTC ) からの経過秒数 ( BIGINT 型 ) を、指定された時間形式に変換します。
FROM_UNIXTIME(x, y)
パラメータ
x: 必須。 秒数。 BIGINT 型がサポートされています。
y: 必須。 時間形式。 TEXT 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT FROM_UNIXTIME(a, 'yyyy-MM-dd HH:mm:ss') FROM public.spark_test;
次の結果が返されます:
from_unixtime --------------------- 1970-01-01 00:00:03
16 進数
説明: 入力データを 16 進数フォーマットに変換します。
HEX(x)
パラメータ
x: 必須。秒数。BIGINT 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT HEX(a) FROM public.spark_test;
次の結果が返されます:
hex ----- 3
HYPOT
説明: 2 つの値の2乗和の平方根を計算します。
HYPOT(x, y)
パラメータ
x および y: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT HYPOT(a, 4) FROM public.spark_test;
次の結果が返されます:
hypot ------- 5
IN
説明: 指定された値が指定された配列内に存在するかどうかを確認します。
IN(x, y)
パラメーター
x: 必須。 BIGINT 型がサポートされています。
y: 必須。 対象の配列。 BIGINT 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。 パラメーター y に指定されたパラメーター x が含まれている場合は、t (true) が返されます。 それ以外の場合は、f (false) が返されます。
例
SELECT hg_spark_funcs.IN(a, ARRAY[2,5,3]) FROM public.spark_test;
次の結果が返されます:
in ---- t
ISNAN
説明: データが非数 (NaN) かどうかを確認します。
ISNAN(x)
パラメーター
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。パラメーター x が NaN の場合、t (true) が返されます。それ以外の場合、f (false) が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT ISNAN(a) FROM public.spark_test;
次の結果が返されます:
isnan ------- f
LEVENSHTEIN
説明: 2 つの文字列間のレーベンシュタイン距離 (編集距離) を計算します。これは、一方の文字列をもう一方の文字列に変換するために必要な 1 文字の編集操作の最小数を表します。
LEVENSHTEIN(x, y)
パラメータ
x および y: 必須。TEXT 型がサポートされています。
戻り値
INTEGER 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT LEVENSHTEIN(a::text, 'hologres') FROM public.spark_test;
次の結果が返されます:
levenshtein ------------- 8
LOG10
説明: 指定された値の底を 10 とする対数を計算します。
LOG10(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT LOG10(a) FROM public.spark_test;
次の結果が返されます。
log10 ------------------- 0.477121254719662
LOG1P
説明: 指定された値に 1 を加えた値の自然対数を計算します。
LOG1P(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT LOG1P(a) FROM public.spark_test;
次の結果が返されます。
log1p ------------------ 1.38629436111989
LOG2
説明: 指定された値の底を 2 とする対数を計算します。
LOG2(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT LOG2(a) FROM public.spark_test;
次の結果が返されます:
log2 ------------------ 1.58496250072116
MIGHT_CONTAIN
説明: 指定された値が Bloom Filter に存在する可能性があるかどうかを確認します。
MIGHT_CONTAIN(x, y)
パラメーター
x: 必須。BYTEA 型がサポートされています。
y: 必須。BIGINT 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。パラメーターが Bloom Filter に存在する可能性がある場合は、t (true) が返されます。それ以外の場合は、f (false) が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT MIGHT_CONTAIN(a::text::bytea, 3) FROM public.spark_test;
次の結果が返されます。
might_contain --------------- f
MONOTONICALLY_INCREASING_ID
説明: 単調増加する一意の 64 ビット整数を生成します。これらの整数は連続していません。
MONOTONICALLY_INCREASING_ID()
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT MONOTONICALLY_INCREASING_ID() FROM public.spark_test;
次の結果が返されます。
monotonically_increasing_id ----------------------------- 0
PMOD
説明: パラメーター x を y で除算した正の剰余を計算します。
PMOD(x, y)
パラメーター
x および y: 必須。BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT PMOD(a, 2) FROM public.spark_test; /* 次の結果が返されます */
次の結果が返されます:
pmod ------ 1
剰余
説明: 除算演算の剰余 (モジュロ) を計算します。
REMAINDER(x, y)
パラメータ
x と y: 必須。 BIGINT 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT REMAINDER(a, 2) FROM public.spark_test;
次の結果が返されます:
remainder ----------- 1
RINT
説明: 最も近い整数を計算します。
RINT(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT RINT(a) FROM public.spark_test; /* public.spark_test から RINT(a) を選択します */
次の結果が返されます:
rint ------ 3
SEC
説明: 正割値を計算します。この関数は三角関数の 1 つであり、角度の余弦の逆数として表されます。
SEC(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SEC(a) FROM public.spark_test;
次の結果が返されます:
sec ------------------- -1.01010866590799
SHA1
説明: 文字列の SHA-1 ハッシュ値を計算し、結果を 16 進数の文字列に変換します。
SHA1(x)
パラメータ
x: 必須。BYTEA 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SHA1(a::text::bytea) FROM public.spark_test;
次の結果が返されます。
sha1 ------------------------------------------ 77de68daecd823babbb58edb1c8e14d7106e83bb
SHA2
説明: 文字列の SHA-2 ハッシュ値 (SHA-224、SHA-256、SHA-384、および SHA-512) を計算し、結果を 16 進数の文字列に変換します。
SHA2(x, y)
パラメータ
x: 必須。BYTEA 型がサポートされています。
y: 必須。INTEGER 型がサポートされています。
戻り値
TEXT 型の値が返されます。
説明サポートされていないビット長の場合は NULL が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SHA2(a::text::bytea, 3) FROM public.spark_test;
次の結果が返されます:
sha2 ------ NaN
SHIFTLEFT
説明: 対象の値を左にシフトします。
SHIFTLEFT(x, y)
パラメータ
x: 必須。対象の値。BIGINT 型がサポートされています。
y: 必須。対象の値を左にシフトするビット数。INTEGER 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SHIFTLEFT(a, 1) FROM public.spark_test;
次の結果が返されます。
shiftleft ----------- 6
SHIFTRIGHT
説明: 対象の値を右シフトします。
SHIFTRIGHT(x, y)
パラメータ
x: 必須。対象の値。BIGINT 型がサポートされています。
y: 必須。対象の値を右にシフトするビット数。INTEGER 型がサポートされています。
戻り値
BIGINT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SHIFTRIGHT(a, 1) FROM public.spark_test;
次の結果が返されます。
shiftright ------------ 1
SINH
説明: 双曲線正弦を計算します。
SINH(x)
パラメータ
x: 必須。DOUBLE PRECISION 型がサポートされています。
戻り値
DOUBLE PRECISION 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SINH(a) FROM public.spark_test;
次の結果が返されます。
sinh ------------------ 10.0178749274099
SOUNDEX
説明: 文字列の Soundex コードを生成します。
SOUNDEX(x)
パラメータ
x: 必須。TEXT 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SOUNDEX(concat('holo', a)) FROM public.spark_test; /* public.spark_test から 'holo' と a を連結したものの SOUNDEX を選択 */
次の結果が返されます。
soundex --------- H400
STARTSWITH
説明: 最初のパラメーターが 2 番目のパラメーターで始まるかどうかを確認します。
STARTSWITH(x, y)
パラメーター
x および y: 必須。TEXT 型がサポートされています。
戻り値
BOOLEAN 型の値が返されます。パラメーター x がパラメーター y で始まる場合は、t (true) が返されます。それ以外の場合は、f (false) が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT STARTSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;
次の結果が返されます。
startswith ------------ f
SUBSTRING_INDEX
説明: 区切り文字の n 番目の出現より前の文字列の部分を取得します。
SUBSTRING_INDEX(x, y, n)
パラメータ
x: 必須。対象の文字列。TEXT 型がサポートされています。
y: 必須。区切り文字。TEXT 型がサポートされています。
n: 必須。出現回数。INTEGER 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT SUBSTRING_INDEX(concat(a, 'hologres'), 'o', 2) FROM public.spark_test;
次の結果が返されます。
substring_index ----------------- 3hol
UNHEX
説明: 16 進数文字列を VARBIT に変換します。
UNHEX(x)
パラメータ
x: 必須。 TEXT 型がサポートされています。
戻り値
TEXT 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT UNHEX(a::text) FROM public.spark_test;
次の結果が返されます。
unhex ------- \x03
URL_DECODE
説明: URL のエンコードされた値をデコードします。
URL_DECODE(x)
パラメータ
x: 必須。 VARCHAR 型がサポートされています。
戻り値
VARCHAR 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT URL_DECODE(URL_ENCODE(CONCAT('www.','中文',a,'.com'))) FROM public.spark_test;
次の結果が返されます:
url_decode --------------- www.中文3.com
URL_ENCODE
説明: エンコードによってエスケープします。
URL_ENCODE(x)
パラメータ
x: 必須。 VARCHAR 型がサポートされています。
戻り値
VARCHAR 型の値が返されます。
例
SET search_path = 'hg_spark_funcs'; SELECT URL_ENCODE(CONCAT('www.','中文',a,'.com')) FROM public.spark_test; // public.spark_test から CONCAT('www.','中文',a,'.com') を URL エンコードした結果を選択します。
次の結果が返されます。
url_encode ----------------------------- www.%E4%B8%AD%E6%96%873.com