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

Hologres:Spark 互換関数

最終更新日:Nov 09, 2025

V3.1 以降、Hologres は hg_spark_funcs 拡張機能を導入することで、さまざまな Spark 互換関数をサポートしています。このトピックでは、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 スキーマの関数は、次の 2 つの方法のいずれかで呼び出すことができます。方法 1 を推奨します。

  • 方法 1: スキーマを明示的に指定する (推奨)
    関数名の前に hg_spark_funcs. プレフィックスを付けて関数を呼び出します。

    SELECT hg_spark_funcs.ACOSH(a) FROM public.spark_test;
  • 方法 2: 検索パスを設定する
    現在のセッションの検索パスに hg_spark_funcs を追加します。その後、プレフィックスなしで関数を直接呼び出すことができます。

    -- 1. hg_spark_funcs を検索パスに追加します。
    SET search_path = 'hg_spark_funcs';
    -- 2. 関数を直接呼び出します。
    SELECT ACOSH(a) FROM public.spark_test;
説明

詳細については、「Spark 関数」をご参照ください。

ACOSH

  • 説明: 逆双曲線余弦を計算します。

    ACOSH(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.ACOSH(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT ACOSH(a) FROM public.spark_test;

    次の結果が返されます。

    acosh
    ------------------
    1.762747174039086

ASINH

  • 説明: 逆双曲線正弦を計算します。

    ASINH(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.ASINH(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT ASINH(a) FROM public.spark_test;

    次の結果が返されます。

          asinh
    ------------------
     1.8184464592320668

ATANH

  • 説明: 値のハイパーボリックタンジェントを計算します。

    ATANH(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.ATANH(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 が指定された範囲内にある場合は true を返し、それ以外の場合は false を返します。

  • SELECT hg_spark_funcs.BETWEEN(a,2 ,4) FROM public.spark_test;

    次の結果が返されます。

     between
    ---------
     t

BIN

  • 説明: 数値をそのバイナリ文字列形式に変換します。

    BIN(x)
  • パラメーター

    x: 必須。BIGINT 型がサポートされています。

  • 戻り値

    TEXT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.BIN(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT BIN(a) FROM public.spark_test;

    次の結果が返されます。

     bin
    -----
     11

BIT_COUNT

  • 説明: 数値のバイナリ表現で 1 に設定されているビットの数を返します。

    BIT_COUNT(x)
  • パラメーター

    x: 必須。BIGINT 型がサポートされています。

  • 戻り値

    INTEGER 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.BIT_COUNT(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT BIT_COUNT(a) FROM public.spark_test;

    次の結果が返されます。

     bit_count
    -----------
             2

BITWISE_AND

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

    BITWISE_AND(x, y)
  • パラメーター

    x および y: 必須。INTEGER 型がサポートされています。

  • 戻り値

    INTEGER 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.BITWISE_AND(a, 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.BITWISE_NOT(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.BITWISE_OR(a, 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.BITWISE_XOR(a, 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CHECKED_ADD(a, 2147483647) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CHECKED_DIVIDE(a, 1/2147483647) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CHECKED_MULTIPLY(a, 2147483647) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CHECKED_SUBTRACT(a, -2147483647) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 が含まれている場合は true を返し、それ以外の場合は false を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CONTAINS(a::text, '3') FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CONV(a::text, 10, 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.COSH(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT COSH(a) FROM public.spark_test;

    次の結果が返されます。

           cosh
    ------------------
     10.0676619957778

CRC32

  • 説明: 32 ビットの巡回冗長検査 (CRC32) ハッシュ値を計算します。

    CRC32(x)
  • パラメーター

    x: 必須。BYTEA 型がサポートされています。

  • 戻り値

    BIGINT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CRC32(hg_spark_funcs.bin(a)::bytea) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.CSC(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT CSC(a) FROM public.spark_test;

    次の結果が返されます。

           csc
    ------------------
     7.08616739573719

ENDSWITH

  • 説明: 文字列 x が文字列 y で終わるかどうかを確認します。

    ENDSWITH(x, y)
  • パラメーター

    x および y: 必須。TEXT 型がサポートされています。

  • 戻り値

    BOOLEAN 型の値を返します。文字列 x が文字列 y で終わる場合は true を返し、それ以外の場合は false を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.ENDSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT ENDSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;

    次の結果が返されます。

     endswith
    ----------
     t

EXPM1

  • 説明: exp(x) - 1 を計算します。ここで、exp(x) はオイラー数を x のべき乗にしたものです。

    EXPM1(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.EXPM1(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.FIND_IN_SET(a::text, 'a,b,c,2') FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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) からの秒数を、指定されたフォーマットの文字列に変換します。

    FROM_UNIXTIME(x, y)
  • パラメーター

    • x: 必須。秒数。BIGINT 型がサポートされています。

    • y: 必須。時刻フォーマット。TEXT 型がサポートされています。

  • 戻り値

    TEXT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.FROM_UNIXTIME(a, 'yyyy-MM-dd HH:mm:ss') FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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

HEX

  • 説明: 数値をその 16 進数文字列形式に変換します。

    HEX(x)
  • パラメーター

    x: 必須。BIGINT 型がサポートされています。

  • 戻り値

    TEXT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.HEX(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT HEX(a) FROM public.spark_test;

    次の結果が返されます。

     hex
    -----
     3

HYPOT

  • 説明: 2 つの値の二乗和の平方根を計算します。

    HYPOT(x, y)
  • パラメーター

    x および y: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.HYPOT(a, 4) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 が含まれている場合は true を返し、それ以外の場合は 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 の場合は true を返し、それ以外の場合は false を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.ISNAN(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT ISNAN(a) FROM public.spark_test;

    次の結果が返されます。

     isnan
    -------
     f

LEVENSHTEIN

  • 説明: 2 つの文字列間のレーベンシュタイン距離 (編集距離とも呼ばれる) を計算します。レーベンシュタイン距離は、一方の文字列を他方の文字列に変換するために必要な単一文字の編集の最小数です。

    LEVENSHTEIN(x, y)
  • パラメーター

    x および y: 必須。TEXT 型がサポートされています。

  • 戻り値

    INTEGER 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.LEVENSHTEIN(a::text, 'hologres') FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.LOG10(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.LOG1P(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.LOG2(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT LOG2(a) FROM public.spark_test;

    次の結果が返されます。

           log2
    ------------------
     1.58496250072116

MIGHT_CONTAIN

  • 説明: 値がブルームフィルターに存在する可能性があるかどうかを確認します。

    MIGHT_CONTAIN(x, y)
  • パラメーター

    • x: 必須。BYTEA 型がサポートされています。

    • y: 必須。BIGINT 型がサポートされています。

  • 戻り値

    BOOLEAN 型の値を返します。値がブルームフィルターに存在する可能性がある場合は true を返し、それ以外の場合は false を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.MIGHT_CONTAIN(a::text::bytea, 3) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.MONOTONICALLY_INCREASING_ID() FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.PMOD(a, 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT PMOD(a, 2) FROM public.spark_test;

    次の結果が返されます。

     pmod
    ------
        1

REMAINDER

  • 説明: x を y で割った余りを計算します。

    REMAINDER(x, y)
  • パラメーター

    x および y: 必須。BIGINT 型がサポートされています。

  • 戻り値

    BIGINT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.REMAINDER(a, 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT REMAINDER(a, 2) FROM public.spark_test;

    次の結果が返されます。

     remainder
    -----------
             1

RINT

  • 説明: 値に最も近い整数を返します。

    RINT(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.RINT(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT RINT(a) FROM public.spark_test;

    次の結果が返されます。

     rint
    ------
        3

SEC

  • 説明: 正割値を計算します。これは、角度の余弦の逆数を返す三角関数です。

    SEC(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SEC(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT SEC(a) FROM public.spark_test;

    次の結果が返されます。

            sec
    -------------------
     -1.01010866590799

SHA1

  • 説明: バイナリ文字列のセキュアハッシュアルゴリズム 1 (SHA-1) ハッシュを計算し、結果を 16 進数文字列として返します。

    SHA1(x)
  • パラメーター

    x: 必須。BYTEA 型がサポートされています。

  • 戻り値

    TEXT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SHA1(a::text::bytea) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SHA2(a::text::bytea, 3) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SHIFTLEFT(a, 1) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SHIFTRIGHT(a, 1) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT SHIFTRIGHT(a, 1) FROM public.spark_test;

    次の結果が返されます。

     shiftright
    ------------
              1

SINH

  • 説明: 双曲線正弦を計算します。

    SINH(x)
  • パラメーター

    x: 必須。DOUBLE PRECISION 型がサポートされています。

  • 戻り値

    DOUBLE PRECISION 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SINH(a) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT SINH(a) FROM public.spark_test;

    次の結果が返されます。

           sinh
    ------------------
     10.0178749274099

SOUNDEX

  • 説明: 文字列のサウンデックスコードを返します。

    SOUNDEX(x)
  • パラメーター

    x: 必須。TEXT 型がサポートされています。

  • 戻り値

    TEXT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SOUNDEX(concat('holo', a)) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT SOUNDEX(concat('holo', a)) FROM public.spark_test;

    次の結果が返されます。

     soundex
    ---------
     H400

STARTSWITH

  • 説明: 文字列 x が文字列 y で始まるかどうかを確認します。

    STARTSWITH(x, y)
  • パラメーター

    x および y: 必須。TEXT 型がサポートされています。

  • 戻り値

    BOOLEAN 型の値を返します。文字列 x が文字列 y で始まる場合は true を返し、それ以外の場合は false を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.STARTSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.SUBSTRING_INDEX(concat(a, 'hologres'), 'o', 2) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT SUBSTRING_INDEX(concat(a, 'hologres'), 'o', 2) FROM public.spark_test;

    次の結果が返されます。

     substring_index
    -----------------
     3hol

UNHEX

  • 説明: 16 進数文字列をそのバイナリ表現に変換します。

    UNHEX(x)
  • パラメーター

    x: 必須。TEXT 型がサポートされています。

  • 戻り値

    TEXT 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.UNHEX(a::text) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    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 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.URL_DECODE(hg_spark_funcs.URL_ENCODE(CONCAT('www.','Chinese',a,'.com'))) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT URL_DECODE(URL_ENCODE(CONCAT('www.','Chinese',a,'.com'))) FROM public.spark_test;

    次の結果が返されます。

     url_decode
    ---------------
     www.chinese3.com

URL_ENCODE

  • 説明: 文字列を URL セーフなフォーマットにエンコードします。

    URL_ENCODE(x)
  • パラメーター

    x: 必須。VARCHAR 型がサポートされています。

  • 戻り値

    VARCHAR 型の値を返します。

  • -- 方法 1: 直接呼び出し (推奨)
    SELECT hg_spark_funcs.URL_ENCODE(CONCAT('www.','Chinese',a,'.com')) FROM public.spark_test;
    
    -- 方法 2: 検索パスを設定してから関数を呼び出す
    SET search_path = 'hg_spark_funcs';
    SELECT URL_ENCODE(CONCAT('www.','Chinese',a,'.com')) FROM public.spark_test;

    次の結果が返されます。

            url_encode
    -----------------------------
     www.%E4%B8%AD%E6%96%873.com