すべてのプロダクト
Search
ドキュメントセンター

Hologres:Spark 互換関数

最終更新日:Jun 18, 2025

V3.1 以降、Hologres は hg_spark_funcs 拡張機能を導入することで、さまざまな Spark 互換関数をサポートしています。この Topic では、Hologres の Spark 互換関数とそれらのユースケースについて説明します。

関数

説明

ACOSH

逆双曲線余弦を計算します。

ASINH

逆双曲線正弦を計算します。

ATANH

双曲線正接を計算します。

BETWEEN

指定された値 x が指定された範囲 [min, max] 内にあるかどうかを確認します。

BIN

バイナリ値を計算します。

BIT_COUNT

バイナリ計算後のビット数を取得します。

BITWISE_AND

ビット単位の論理 AND 演算を実行します。

BITWISE_NOT

ビット単位の論理 NOT 演算を実行します。

BITWISE_OR

ビット単位の論理 OR 演算を実行します。

BITWISE_XOR

ビット単位の論理 XOR 演算を実行します。

CHECKED_ADD

加算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。

CHECKED_DIVIDE

除算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。

CHECKED_MULTIPLY

乗算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。

CHECKED_SUBTRACT

減算を実行します。数値のオーバーフローが発生した場合、サイレントオーバーフローではなく、エラーを報告します。

CONTAINS

パラメーター x にパラメーター y が含まれているかどうかを確認します。

CONV

文字列の数値をある基数(基数ソース)から別の基数(基数ターゲット)に変換します。

COSH

双曲線余弦を計算します。

CRC32

CRC32 ハッシュ値を計算します。

CSC

余割値を計算します。

ENDSWITH

最初に入力パラメーターが2番目に入力パラメーターで終わるかどうかを確認します。

EXPM1

オイラー数(自然対数の底)の累乗から 1 を引いた値、つまり「exp(x) - 1」を計算します。

FIND_IN_SET

カンマ区切りの配列文字列内で指定された文字列の位置を検索し、1 から始まるインデックス値を返します。

FROM_UNIXTIME

UNIX エポック (1970-01-01 00:00:00 UTC) からの経過秒数 (BIGINT 型) を指定された時間形式に変換します。

HEX

入力データを16進数形式に変換します。

HYPOT

2つの値の2乗和の平方根を計算します。

IN

指定された配列に指定された値が存在するかどうかを確認します。

ISNAN

データが数値ではない (NaN) かどうかを確認します。

LEVENSHTEIN

2 つの文字列間のレーベンシュタイン距離 (編集距離) を計算します。これは、一方の文字列をもう一方の文字列に変換するために必要な 1 文字編集操作の最小回数を表します。

LOG10

指定された値の10を底とする対数を計算します。

LOG1P

指定された値に 1 を加えた値の自然対数を計算します。

LOG2

指定された値の2を底とする対数を計算します。

MIGHT_CONTAIN

Bloom Filter に指定された値が存在する可能性があるかどうかを確認します。

MONOTONICALLY_INCREASING_ID

単調増加する一意の 64 ビット整数を生成します。これらの整数は連続していません。

PMOD

パラメーター x を y で除算した正の剰余を計算します。

REMAINDER

除算演算の剰余を計算します。

RINT

最も近い整数を計算します。

SEC

正割値を計算します。この関数は三角関数の1種であり、角度の余弦の逆数として表されます。

SHA1

文字列の SHA-1 ハッシュ値を計算し、結果を16進数文字列に変換します。

SHA2

文字列の SHA-2 ハッシュ値 (SHA-224、SHA-256、SHA-384、および SHA-512) を計算し、結果を16進数文字列に変換します。

SHIFTLEFT

ターゲット値を左シフトします。

SHIFTRIGHT

ターゲット値を右シフトします。

SINH

双曲線正弦を計算します。

SOUNDEX

文字列の Soundex コードを生成します。

STARTSWITH

最初のパラメーターが2番目のパラメーターで始まるかどうかを確認します。

SUBSTRING_INDEX

区切り文字の n 番目の出現までの文字列の部分を取得します。

UNHEX

16進数文字列を VARBIT に変換します。

URL_DECODE

URL のエンコードされた値をエスケープ解除します。

URL_ENCODE

エンコードによってエスケープします。

拡張機能をインストールする

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