Spark兼容函数

HologresV3.1版本起,通过增加hg_spark_funcs扩展包,支持若干Spark兼容函数。本文为您介绍Hologres已兼容的Spark函数及使用用例。

函数

功能

ACOSH

计算反双曲余弦值。

ASINH

计算反双曲正弦值。

ATANH

计算双曲正切值。

BETWEEN

判断指定值x是否在指定[min, max]范围内。

BIN

计算二进制值。

BIT_COUNT

获取二进制计算后的位数。

BITWISE_AND

进行按位逻辑与(AND)计算。

BITWISE_NOT

Bitwise按位逻辑非(NOT)计算。

BITWISE_OR

Bitwise按位逻辑或(OR)计算。

BITWISE_XOR

Bitwise按位逻辑异(XOR)计算。

CHECKED_ADD

加法计算。该函数在数值溢出时会报错,而不是静默溢出。

CHECKED_DIVIDE

除法计算。该函数在数值溢出时会报错,而不是静默溢出。

CHECKED_MULTIPLY

乘法计算。该函数在数值溢出时会报错,而不是静默溢出。

CHECKED_SUBTRACT

减法计算。该函数在数值溢出时会报错,而不是静默溢出。

CONTAINS

判断参数x是否包含参数y。

CONV

将字符串形式的数字从一种进制(源进制)转换为另一种进制(目标进制)。

COSH

计算双曲余弦值。

CRC32

计算CRC32哈希值。

CSC

计算余割值

ENDSWITH

判断第一个输入参数是否以第二个输入参数结尾。

EXPM1

计算Euler数(自然对数的底)的幂次方减 1,即“exp(x) - 1”。

FIND_IN_SET

查找指定字符串在逗号分隔数组字符串中的位置,并返回其从1开始的索引值。

FROM_UNIXTIME

将自UNIX纪元(1970-01-01 00:00:00 UTC)以来的秒数(BIGINT类型)转换为指定的时间格式。

HEX

将输入数据转换为16进制格式。

HYPOT

计算两个值平方和的平方根。

IN

判断指定数值是否存在于指定的数组中。

ISNAN

判断数据是否为NAN(Not a Number)。

LEVENSHTEIN

计算两个字符串之间的LEVENSHTEIN距离(即编辑距离),表示将一个字符串转换为另一个字符串所需的最少单字符编辑操作次数。

LOG10

计算给指定值以10为底的对数。

LOG1P

计算给指定值加1后的自然对数。

LOG2

计算给指定值以2为底的对数。

MIGHT_CONTAIN

判断指定值是否可能存在于Bloom Filter中。

MONOTONICALLY_INCREASING_ID

生成单调递增且唯一的64位整数,但这些整数不连续。

PMOD

计算参数x除以y的正余数。

REMAINDER

计算除法运算中的模数(即余数)。

RINT

计算最接近的整数。

SEC

正割函数,是三角函数的一种,表示为角度的余弦值的倒数。

SHA1

计算字符串的SHA-1(Secure Hash Algorithm 1)哈希值,并将结果转换为十六进制字符串。

SHA2

计算字符串的SHA-2哈希值(SHA-224、SHA-256、SHA-384SHA-512),并将结果转换为十六进制字符串。

SHIFTLEFT

将目标值按位左移。

SHIFTRIGHT

将目标值按位右移。

SINH

计算双曲正弦值

SOUNDEX

生成字符串的Soundex代码。

STARTSWITH

判断第一个参数是否以第二个参数开始。

SUBSTRING_INDEX

获取字符串中分隔符第n次出现之前的部分。

UNHEX

将十六进制的字符串转换为VARBIT。

URL_DECODE

取消转义URL的编码值。

URL_ENCODE

通过编码进行转义。

安装扩展

在使用Spark函数前,需要SuperuserDB内执行以下语句安装扩展包才可以正常使用。一个DB只需执行一次即可,如果创建新的DB,还需要再次执行如下语句。

CREATE extension hg_spark_funcs;
说明

该扩展只支持建在hg_spark_funcs Schema下,手动指定其他Schema无效。

示例数据

本文Spark函数参数x暂不支持常量入参,下文示例均使用该示例数据。

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兼容函数的详细使用方法,请参见Spark Functions

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;

    返回结果如下。

          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)
    说明

    由于BETWEENHologres关键字,使用时需增加“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';
    SELECT BIT_COUNT(a) FROM public.spark_test;

    返回结果如下。

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

BITWISE_AND

  • 描述:进行按位逻辑与(AND)计算。

    BITWISE_AND(x, y)
  • 参数说明

    xy:必填,支持INTEGER类型。

  • 返回值说明

    返回INTEGER类型。

  • 示例

    SET search_path = 'hg_spark_funcs';
    SELECT BITWISE_AND(a, 2) FROM public.spark_test;

    返回结果如下。

     bitwise_and
    -------------
               2

BITWISE_NOT

  • 描述:Bitwise按位逻辑非(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

  • 描述:Bitwise按位逻辑或(OR)计算。

    BITWISE_OR(x, y)
  • 参数说明

    xy:必填,支持BIGINT类型。

  • 返回值说明

    返回BIGINT类型。

  • 示例

    SET search_path = 'hg_spark_funcs';
    SELECT BITWISE_OR(a, 2) FROM public.spark_test;

    返回结果如下。

     bitwise_or
    ------------
              3

BITWISE_XOR

  • 描述:Bitwise按位逻辑异(XOR)计算。

    BITWISE_XOR(x, y)
  • 参数说明

    xy:必填,支持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)
  • 参数说明

    xy:必填,支持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)
  • 参数说明

    xy:必填,支持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)
  • 参数说明

    xy:必填,支持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)
  • 参数说明

    xy:必填,支持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)
  • 参数说明

    xy:必填,支持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;

    返回结果如下。

           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

  • 描述:判断第一个输入参数是否以第二个输入参数结尾。

    ENDSWITH(x, y)
  • 参数说明

    xy:必填,支持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

  • 描述:计算Euler数(自然对数的底)的幂次方减 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)
  • 参数说明

    xy:必填,支持类型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

HEX

  • 描述:将输入数据转换为16进制格式。

    HEX(x)
  • 参数说明

    x:必填,秒数,支持BIGINT类型。

  • 返回值说明

    返回TEXT类型。

  • 示例

    SET search_path = 'hg_spark_funcs';
    SELECT HEX(a) FROM public.spark_test;

    返回结果如下。

     hex
    -----
     3

HYPOT

  • 描述:计算两个值平方和的平方根。

    HYPOT(x, y)
  • 参数说明

    xy:必填,支持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(Not a Number)。

    ISNAN(x)
  • 参数说明

    x:必填,支持DOUBLE PRECISION类型。

  • 返回值说明

    返回BOOLEAN类型。若参数xNAN,则返回t(true);反正,则返回f(false)。

  • 示例

    SET search_path = 'hg_spark_funcs';
    SELECT ISNAN(a) FROM public.spark_test;

    返回结果如下。

     isnan
    -------
     f

LEVENSHTEIN

  • 描述:计算两个字符串之间的LEVENSHTEIN距离(即编辑距离),表示将一个字符串转换为另一个字符串所需的最少单字符编辑操作次数。

    LEVENSHTEIN(x, y)
  • 参数说明

    xy:必填,支持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)
  • 参数说明

    xy:必填,支持BIGINT类型。

  • 返回值说明

    返回BIGINT类型。

  • 示例

    SET search_path = 'hg_spark_funcs';
    SELECT PMOD(a, 2) FROM public.spark_test; 

    返回结果如下。

     pmod
    ------
        1

REMAINDER

  • 描述:计算除法运算中的模数(即余数)。

    REMAINDER(x, y)
  • 参数说明

    xy:必填,支持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;

    返回结果如下。

     rint
    ------
        3

SEC

  • 描述:正割函数,是三角函数的一种,表示为角度的余弦值的倒数。

    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(Secure Hash Algorithm 1)哈希值,并将结果转换为十六进制字符串。

    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-384SHA-512),并将结果转换为十六进制字符串。

    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;

    返回结果如下。

     soundex
    ---------
     H400

STARTSWITH

  • 描述:判断第一个参数是否以第二个参数开始。

    STARTSWITH(x, y)
  • 参数说明

    xy:必填,支持TEXT类型。

  • 返回值说明

    返回BOOLEAN类型。若第一个参数是以第二个参数开始,则返回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

  • 描述:将十六进制的字符串转换为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;

    返回结果如下。

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