全部产品
Search
文档中心

Hologres:Fungsi Kompatibel Spark

更新时间:Nov 10, 2025

Mulai versi V3.1, Hologres mendukung berbagai fungsi yang kompatibel dengan Spark melalui ekstensi hg_spark_funcs. Topik ini menjelaskan fungsi-fungsi kompatibel dengan Spark di Hologres serta menyertakan contoh penggunaannya.

Fungsi

Fitur

ACOSH

Menghitung invers kosinus hiperbolik.

ASINH

Menghitung invers sinus hiperbolik.

ATANH

Menghitung tangen hiperbolik.

BETWEEN

Memeriksa apakah nilai x yang ditentukan berada dalam rentang [min, max] yang ditentukan.

BIN

Menghitung nilai biner.

BIT_COUNT

Mendapatkan jumlah bit setelah perhitungan biner.

BITWISE_AND

Menjalankan operasi AND logika bitwise.

BITWISE_NOT

Menjalankan operasi NOT logika bitwise.

BITWISE_OR

Menjalankan operasi OR logika bitwise.

BITWISE_XOR

Menjalankan operasi XOR logika bitwise.

CHECKED_ADD

Menjalankan penambahan. Fungsi ini melaporkan kesalahan saat terjadi overflow numerik, bukan diam-diam mengalami overflow.

CHECKED_DIVIDE

Menjalankan pembagian. Fungsi ini melaporkan kesalahan saat terjadi overflow numerik, bukan diam-diam mengalami overflow.

CHECKED_MULTIPLY

Menjalankan perkalian. Fungsi ini melaporkan kesalahan saat terjadi overflow numerik, bukan diam-diam mengalami overflow.

CHECKED_SUBTRACT

Menjalankan pengurangan. Fungsi ini melaporkan kesalahan saat terjadi overflow numerik, bukan diam-diam mengalami overflow.

CONTAINS

Memeriksa apakah parameter x mengandung parameter y.

CONV

Mengonversi angka string dari satu basis (basis sumber) ke basis lainnya (basis target).

COSH

Menghitung kosinus hiperbolik.

CRC32

Menghitung nilai hash CRC32.

CSC

Menghitung nilai kosekan.

ENDSWITH

Memeriksa apakah parameter input pertama diakhiri dengan parameter input kedua.

EXPM1

Menghitung pangkat bilangan Euler (basis logaritma natural) dikurangi 1, yaitu "exp(x) - 1".

FIND_IN_SET

Mencari posisi string tertentu dalam array string yang dipisahkan koma dan mengembalikan nilai indeks berbasis 1.

FROM_UNIXTIME

Mengonversi jumlah detik (tipe BIGINT) sejak epoch UNIX (1970-01-01 00:00:00 UTC) ke format waktu yang ditentukan.

HEX

Mengonversi data input ke format heksadesimal.

HYPOT

Menghitung akar kuadrat dari jumlah kuadrat dua nilai.

IN

Memeriksa apakah nilai tertentu ada dalam array yang ditentukan.

ISNAN

Memeriksa apakah data adalah Not a Number (NaN).

LEVENSHTEIN

Menghitung jarak LEVENSHTEIN (jarak edit) antara dua string, yang mewakili jumlah minimum operasi edit karakter tunggal yang diperlukan untuk mentransformasikan satu string menjadi string lainnya.

LOG10

Menghitung logaritma basis-10 dari nilai yang ditentukan.

LOG1P

Menghitung logaritma natural dari nilai yang ditentukan ditambah 1.

LOG2

Menghitung logaritma basis-2 dari nilai yang ditentukan.

MIGHT_CONTAIN

Memeriksa apakah nilai tertentu mungkin ada dalam Bloom Filter.

MONOTONICALLY_INCREASING_ID

Menghasilkan integer 64-bit unik yang meningkat secara monoton. Integer ini tidak berurutan.

PMOD

Menghitung sisa positif dari parameter x dibagi y.

REMAINDER

Menghitung modulus (sisa) dalam operasi pembagian.

RINT

Menghitung bilangan bulat terdekat.

SEC

Menghitung nilai sekan. Fungsi ini adalah jenis fungsi trigonometri, direpresentasikan sebagai kebalikan dari kosinus suatu sudut.

SHA1

Menghitung nilai hash SHA-1 dari sebuah string dan mengonversi hasilnya ke string heksadesimal.

SHA2

Menghitung nilai hash SHA-2 dari sebuah string (SHA-224, SHA-256, SHA-384, dan SHA-512) dan mengonversi hasilnya ke string heksadesimal.

SHIFTLEFT

Menjalankan pergeseran kiri pada nilai target.

SHIFTRIGHT

Menjalankan pergeseran kanan pada nilai target.

SINH

Menghitung sinus hiperbolik.

SOUNDEX

Menghasilkan kode Soundex dari sebuah string.

STARTSWITH

Memeriksa apakah parameter pertama dimulai dengan parameter kedua.

SUBSTRING_INDEX

Mendapatkan bagian string sebelum kemunculan ke-n dari pemisah.

UNHEX

Mengonversi string heksadesimal ke VARBIT.

URL_DECODE

Menghapus escape dari nilai-nilai yang dienkripsi dalam URL.

URL_ENCODE

Melakukan escape melalui enkoding.

Instal ekstensi

Sebelum menggunakan fungsi Spark, Anda harus mengeksekusi pernyataan berikut sebagai Superuser untuk menginstal ekstensi yang diperlukan. Pernyataan ini hanya perlu dieksekusi sekali per database. Jika Anda membuat database baru, Anda harus mengeksekusi pernyataan ini kembali.

CREATE extension hg_spark_funcs;
Catatan

Ekstensi ini hanya dapat dibuat di skema hg_spark_funcs. Anda tidak dapat menentukan skema lain secara manual.

Data sampel

Parameter x pada fungsi Spark dalam topik ini tidak mendukung parameter input konstan. Semua contoh dalam topik ini menggunakan data sampel berikut.

CREATE TABLE public.spark_test(a INT);
INSERT INTO public.spark_test VALUES (3);

Fungsi Spark

Anda dapat memanggil fungsi di skema hg_spark_funcs dengan salah satu dari dua cara berikut. Metode 1 direkomendasikan.

  • Metode 1: Secara eksplisit tentukan skema (Disarankan)
    Panggil fungsi dengan menambahkan awalan hg_spark_funcs. ke nama fungsinya.

    SELECT hg_spark_funcs.ACOSH(a) FROM public.spark_test;
  • Metode 2: Atur jalur pencarian
    Tambahkan hg_spark_funcs ke jalur pencarian sesi saat ini. Setelah itu, Anda dapat memanggil fungsi secara langsung tanpa awalan.

    -- 1. Tambahkan hg_spark_funcs ke jalur pencarian.
    SET search_path = 'hg_spark_funcs';
    -- 2. Panggil fungsi secara langsung.
    SELECT ACOSH(a) FROM public.spark_test;
Catatan

Untuk informasi lebih lanjut tentang fungsi yang kompatibel dengan Spark, lihat fungsi Spark.

ACOSH

  • Deskripsi: Menghitung invers kosinus hiperbolik.

    ACOSH(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.ACOSH(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT ACOSH(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

ASINH

  • Deskripsi: Menghitung invers sinus hiperbolik.

    ASINH(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.ASINH(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT ASINH(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

          asinh
    ------------------
     1,8184464592320668

ATANH

  • Deskripsi: Menghitung tangen hiperbolik dari sebuah nilai.

    ATANH(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.ATANH(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT ATANH(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

     atanh
    -------
       NaN

BETWEEN

  • Deskripsi: Memeriksa apakah nilai x berada dalam rentang [min, max] yang ditentukan.

    hg_spark_funcs.BETWEEN(x, min, max)

    Catatan:

    Karena BETWEEN merupakan kata kunci Hologres, Anda harus menambahkan awalan hg_spark_funcs. saat menggunakan fungsi ini.

  • Parameter:

    • x: Diperlukan. Tipe BIGINT didukung.

    • min: Diperlukan. Nilai minimum dari rentang yang ditentukan. Tipe BIGINT didukung.

    • max: Diperlukan. Nilai maksimum dari rentang yang ditentukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika x berada dalam rentang yang ditentukan, true akan dikembalikan. Sebaliknya, false akan dikembalikan.

  • Contoh:

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

    Hasil berikut dikembalikan:

     between
    ---------
     t

BIN

  • Deskripsi: Mengonversi angka menjadi representasi string binernya.

    BIN(x)
  • Parameter:

    x: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.BIN(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT BIN(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

     bin
    -----
     11

BIT_COUNT

  • Deskripsi: Mengembalikan jumlah bit yang disetel ke 1 dalam representasi biner dari sebuah angka.

    BIT_COUNT(x)
  • Parameter:

    x: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe INTEGER.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.BIT_COUNT(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian dan kemudian panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT BIT_COUNT(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

BITWISE_AND

  • Deskripsi: Melakukan operasi logika AND bitwise.

    BITWISE_AND(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe INTEGER.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.BITWISE_AND(a, 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT BITWISE_AND(a, 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

BITWISE_NOT

  • Deskripsi: Melakukan operasi NOT logika bitwise.

    BITWISE_NOT(x)
  • Parameter:

    x: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.BITWISE_NOT(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT BITWISE_NOT(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

     bitwise_not
    -------------
              -4

BITWISE_OR

  • Deskripsi: Melakukan operasi OR logis bitwise.

    BITWISE_OR(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.BITWISE_OR(a, 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT BITWISE_OR(a, 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

BITWISE_XOR

  • Deskripsi: Melakukan operasi XOR logika bit.

    BITWISE_XOR(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe INTEGER.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.BITWISE_XOR(a, 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT BITWISE_XOR(a, 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

     bitwise_xor
    -------------
               1

CHECKED_ADD

  • Deskripsi: Melakukan penambahan dan melaporkan kesalahan jika terjadi overflow numerik. Ini mencegah overflow diam-diam.

    CHECKED_ADD(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CHECKED_ADD(a, 2147483647) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CHECKED_ADD(a, 2147483647) FROM public.spark_test;

    Hasil berikut dikembalikan:

    --Sebagian dari pesan kesalahan adalah sebagai berikut.
    ERROR:  internal error: Run func: spark_checked_add fails with Exception: VeloxUserError

CHECKED_DIVIDE

  • Deskripsi: Melakukan pembagian dan melaporkan kesalahan jika terjadi overflow numerik. Ini mencegah overflow diam-diam.

    CHECKED_DIVIDE(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.CHECKED_DIVIDE(a, 1/2147483647) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CHECKED_DIVIDE(a, 1/2147483647) FROM public.spark_test;

    Hasil berikut dikembalikan:

    --Sebagian dari pesan kesalahan adalah sebagai berikut.
    ERROR:  internal error: Run func: spark_checked_divide fails with Exception: VeloxUserError

CHECKED_MULTIPLY

  • Deskripsi: Melakukan perkalian dan melaporkan kesalahan jika terjadi overflow numerik. Ini mencegah overflow diam-diam.

    CHECKED_MULTIPLY(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CHECKED_MULTIPLY(a, 2147483647) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CHECKED_MULTIPLY(a, 2147483647) FROM public.spark_test;

    Hasil berikut dikembalikan:

    --Sebagian dari pesan kesalahan adalah sebagai berikut.
    ERROR:  internal error: Run func: spark_checked_multiply fails with Exception: VeloxUserError

CHECKED_SUBTRACT

  • Deskripsi: Melakukan pengurangan dan melaporkan kesalahan jika terjadi overflow numerik. Ini mencegah overflow diam-diam.

    CHECKED_SUBTRACT(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CHECKED_SUBTRACT(a, -2147483647) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CHECKED_SUBTRACT(a, -2147483647) FROM public.spark_test;

    Hasil berikut dikembalikan:

    --Sebagian dari pesan kesalahan adalah sebagai berikut.
    ERROR:  internal error: Run func: spark_checked_subtract fails with Exception: VeloxUserError

CONTAINS

  • Deskripsi: Memeriksa apakah string x mengandung string y.

    CONTAINS(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika x mengandung y, true dikembalikan. Sebaliknya, false dikembalikan.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CONTAINS(a::text, '3') FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CONTAINS(a::text, '3') FROM public.spark_test;

    Hasil berikut dikembalikan:

     contains
    ----------
     t

CONV

  • Deskripsi: Mengonversi string yang mewakili angka dari basis sumber ke basis target.

    CONV(x, n, m)
  • Parameter:

    • x: Diperlukan. Angka dalam bentuk string. Tipe TEXT didukung.

    • n: Diperlukan. Basis sumber. Tipe INTEGER didukung.

    • m: Diperlukan. Basis target. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai dengan tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CONV(a::text, 10, 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CONV(a::text, 10, 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

     conv
    ------
     11

COSH

  • Deskripsi: Menghitung kosinus hiperbolik.

    COSH(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.COSH(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT COSH(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

CRC32

  • Deskripsi: Menghitung nilai hash 32-bit cyclic redundancy check (CRC32).

    CRC32(x)
  • Parameter:

    x: Diperlukan. Tipe BYTEA didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CRC32(hg_spark_funcs.bin(a)::bytea) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CRC32(bin(a)::bytea) FROM public.spark_test;

    Hasil berikut dikembalikan:

       crc32
    ------------
     3.596.227.959

CSC

  • Deskripsi: Menghitung nilai kosekan.

    CSC(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.CSC(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT CSC(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

ENDSWITH

  • Deskripsi: Memeriksa apakah string x diakhiri dengan string y.

    ENDSWITH(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika string x diakhiri dengan string y, true dikembalikan. Sebaliknya, false dikembalikan.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.ENDSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT ENDSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;

    Hasil berikut dikembalikan:

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

EXPM1

  • Deskripsi: Menghitung exp(x) - 1, di mana exp(x) adalah bilangan Euler dipangkatkan dengan x.

    EXPM1(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.EXPM1(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian dan kemudian panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT EXPM1(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

          expm1
    ------------------
     19.0855369231877

FIND_IN_SET

  • Deskripsi: Mengembalikan indeks berbasis 1 dari sebuah string dalam daftar string yang dipisahkan koma.

    FIND_IN_SET(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe TEXT didukung.

  • Nilai Pengembalian:

    Mengembalikan nilai tipe INTEGER. Jika string yang ditentukan tidak ditemukan, 0 dikembalikan.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.FIND_IN_SET(a::text, 'a,b,c,2') FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT FIND_IN_SET(a::text, 'a,b,c,2') FROM public.spark_test;

    Hasil berikut dikembalikan:

     find_in_set
    -------------
               4

FROM_UNIXTIME

  • Deskripsi: Mengonversi jumlah detik sejak epoch UNIX (1970-01-01 00:00:00 UTC) menjadi string dalam format yang ditentukan.

    FROM_UNIXTIME(x, y)
  • Parameter:

    • x: Diperlukan. Jumlah detik. Tipe BIGINT didukung.

    • y: Diperlukan. Format waktu. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.FROM_UNIXTIME(a, 'yyyy-MM-dd HH:mm:ss') FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT FROM_UNIXTIME(a, 'yyyy-MM-dd HH:mm:ss') FROM public.spark_test;

    Hasil berikut dikembalikan:

        from_unixtime
    ---------------------
     1970-01-01 00:00:03

HEX

  • Deskripsi: Mengonversi angka menjadi representasi string heksadesimalnya.

    HEX(x)
  • Parameter:

    x: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.HEX(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT HEX(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

     hex
    -----
     3

HYPOT

  • Deskripsi: Menghitung akar kuadrat dari jumlah kuadrat dua nilai.

    HYPOT(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.HYPOT(a, 4) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT HYPOT(a, 4) FROM public.spark_test;

    Hasil berikut dikembalikan:

     hypot
    -------
         5

IN

  • Deskripsi: Memeriksa apakah suatu nilai ada dalam array.

    IN(x, y)
  • Parameter:

    • x: Diperlukan. Tipe BIGINT didukung.

    • y: Diperlukan. Array target. Tipe BIGINT[] didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika array y berisi nilai x, maka true dikembalikan. Sebaliknya, false dikembalikan.

  • Contoh:

    SELECT hg_spark_funcs.IN(a, ARRAY[2,5,3]) FROM public.spark_test;

    Hasil berikut dikembalikan:

     in
    ----
     t

ISNAN

  • Deskripsi: Memeriksa apakah suatu nilai adalah Bukan Angka (NaN).

    ISNAN(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika nilai x adalah NaN, maka true dikembalikan. Sebaliknya, false dikembalikan.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.ISNAN(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT ISNAN(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

     isnan
    -------
     f

LEVENSHTEIN

  • Deskripsi: Menghitung jarak Levenshtein, juga dikenal sebagai jarak edit, antara dua string. Jarak Levenshtein adalah jumlah minimum edit karakter tunggal yang diperlukan untuk mengubah satu string menjadi string lainnya.

    LEVENSHTEIN(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe INTEGER.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.LEVENSHTEIN(a::text, 'hologres') FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT LEVENSHTEIN(a::text, 'hologres') FROM public.spark_test;

    Hasil berikut dikembalikan:

     levenshtein
    -------------
               8

LOG10

  • Deskripsi: Menghitung logaritma basis-10 (logaritma desimal) dari sebuah nilai.

    LOG10(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.LOG10(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT LOG10(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

           log10
    -------------------
     0,477121254719662

LOG1P

  • Deskripsi: Menghitung logaritma natural dari sebuah nilai ditambah 1.

    LOG1P(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.LOG1P(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT LOG1P(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

          log1p
    ------------------
     1.38629436111989

LOG2

  • Deskripsi: Menghitung logaritma basis-2 (logaritma biner) dari sebuah nilai.

    LOG2(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.LOG2(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT LOG2(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

MIGHT_CONTAIN

  • Deskripsi: Memeriksa apakah suatu nilai mungkin ada dalam filter Bloom.

    MIGHT_CONTAIN(x, y)
  • Parameter:

    • x: Diperlukan. Tipe BYTEA didukung.

    • y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika nilai mungkin ada dalam filter Bloom, true dikembalikan. Sebaliknya, false dikembalikan.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.MIGHT_CONTAIN(a::text::bytea, 3) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian dan kemudian panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT MIGHT_CONTAIN(a::text::bytea, 3) FROM public.spark_test;

    Hasil berikut dikembalikan:

     might_contain
    ---------------
     f

MONOTONICALLY_INCREASING_ID

  • Deskripsi: Menghasilkan bilangan bulat 64-bit yang meningkat secara monotonik dan unik. Bilangan bulat ini tidak berurutan.

    MONOTONICALLY_INCREASING_ID()
  • Nilai Kembali:

    Mengembalikan nilai bertipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.MONOTONICALLY_INCREASING_ID() FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT MONOTONICALLY_INCREASING_ID() FROM public.spark_test;

    Hasil berikut dikembalikan:

     monotonically_increasing_id
    -----------------------------
                               0

PMOD

  • Deskripsi: Menghitung sisa positif dari x dibagi y.

    PMOD(x, y)
  • Parameter:

    x dan y: Wajib. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.PMOD(a, 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT PMOD(a, 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

     pmod
    ------
        1

REMAINDER

  • Deskripsi: Menghitung sisa dari x dibagi oleh y.

    REMAINDER(x, y)
  • Parameter:

    x dan y: Diperlukan. Tipe BIGINT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.REMAINDER(a, 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT REMAINDER(a, 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

RINT

  • Deskripsi: Mengembalikan bilangan bulat terdekat dari suatu nilai.

    RINT(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.RINT(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT RINT(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

     rint
    ------
        3

SEC

  • Deskripsi: Menghitung nilai sekan. Ini adalah fungsi trigonometri yang mengembalikan kebalikan dari kosinus suatu sudut.

    SEC(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.SEC(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SEC(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

SHA1

  • Deskripsi: Menghitung hash Secure Hash Algorithm 1 (SHA-1) dari string biner dan mengembalikan hasilnya sebagai string heksadesimal.

    SHA1(x)
  • Parameter:

    x: Diperlukan. Tipe BYTEA didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.SHA1(a::text::bytea) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SHA1(a::text::bytea) FROM public.spark_test;

    Hasil berikut dikembalikan:

                       sha1
    ------------------------------------------
     77de68daecd823babbb58edb1c8e14d7106e83bb

SHA2

  • Deskripsi: Menghitung hash SHA-2 dari string biner (SHA-224, SHA-256, SHA-384, atau SHA-512) dan mengembalikan hasilnya sebagai string heksadesimal.

    SHA2(x, y)
  • Parameter:

    • x: Diperlukan. Tipe BYTEA didukung.

    • y: Diperlukan. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

    Catatan:

    Panjang bit yang tidak didukung mengembalikan NULL.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.SHA2(a::text::bytea, 3) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SHA2(a::text::bytea, 3) FROM public.spark_test;

    Hasil berikut dikembalikan:

    sha2
    ------
    NaN

SHIFTLEFT

  • Deskripsi: Melakukan operasi pergeseran bit ke kiri pada sebuah nilai.

    SHIFTLEFT(x, y)
  • Parameter:

    • x: Diperlukan. Nilai yang akan digeser. Tipe BIGINT didukung.

    • y: Diperlukan. Jumlah bit untuk menggeser nilai ke kiri. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai dengan tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.SHIFTLEFT(a, 1) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SHIFTLEFT(a, 1) FROM public.spark_test;

    Hasil berikut dikembalikan:

     shiftleft
    -----------
             6

SHIFTRIGHT

  • Deskripsi: Melakukan pergeseran bit ke kanan pada sebuah nilai.

    SHIFTRIGHT(x, y)
  • Parameter:

    • x: Diperlukan. Nilai yang akan digeser. Tipe BIGINT didukung.

    • y: Diperlukan. Jumlah bit untuk menggeser nilai ke kanan. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BIGINT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.SHIFTRIGHT(a, 1) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian dan kemudian panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SHIFTRIGHT(a, 1) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

SINH

  • Deskripsi: Menghitung sinus hiperbolik.

    SINH(x)
  • Parameter:

    x: Diperlukan. Tipe DOUBLE PRECISION didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe DOUBLE PRECISION.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.SINH(a) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SINH(a) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

SOUNDEX

  • Deskripsi: Mengembalikan kode Soundex dari sebuah string.

    SOUNDEX(x)
  • Parameter:

    x: Diperlukan. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.SOUNDEX(concat('holo', a)) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian dan kemudian panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SOUNDEX(concat('holo', a)) FROM public.spark_test;

    Hasil berikut dikembalikan:

     soundex
    ---------
     H400

STARTSWITH

  • Deskripsi: Memeriksa apakah string x dimulai dengan string y.

    STARTSWITH(x, y)
  • Parameter:

    x dan y: Wajib. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe BOOLEAN. Jika string x dimulai dengan string y, true dikembalikan. Sebaliknya, false dikembalikan.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.STARTSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT STARTSWITH(concat(a, 'hologres'), 'gres') FROM public.spark_test;

    Hasil berikut dikembalikan:

     startswith
    ------------
     f

SUBSTRING_INDEX

  • Deskripsi: Mengembalikan substring dari sebuah string sebelum kemunculan ke-n dari pemisah.

    SUBSTRING_INDEX(x, y, n)
  • Parameter:

    • x: Wajib. String sumber. Tipe TEXT didukung.

    • y: Wajib. Pemisah. Tipe TEXT didukung.

    • n: Wajib. Jumlah kemunculan pemisah. Tipe INTEGER didukung.

  • Nilai Kembali:

    Mengembalikan nilai dengan tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Direkomendasikan)
    SELECT hg_spark_funcs.SUBSTRING_INDEX(concat(a, 'hologres'), 'o', 2) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT SUBSTRING_INDEX(concat(a, 'hologres'), 'o', 2) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

UNHEX

  • Deskripsi: Mengonversi string heksadesimal menjadi representasi binernya.

    UNHEX(x)
  • Parameter:

    x: Diperlukan. Tipe TEXT didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe TEXT.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.UNHEX(a::text) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT UNHEX(a::text) FROM public.spark_test;

    Hasil berikut dikembalikan:

     unhex
    -------
     \x03

URL_DECODE

  • Deskripsi: Mendekode string yang telah dienkode URL.

    URL_DECODE(x)
  • Parameter:

    x: Wajib. Tipe VARCHAR didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe VARCHAR.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.URL_DECODE(hg_spark_funcs.URL_ENCODE(CONCAT('www.','Chinese',a,'.com'))) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT URL_DECODE(URL_ENCODE(CONCAT('www.','Chinese',a,'.com'))) FROM public.spark_test;

    Hasil berikut dikembalikan:

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

URL_ENCODE

  • Deskripsi: Mengkodekan string ke dalam format yang aman untuk URL.

    URL_ENCODE(x)
  • Parameter:

    x: Diperlukan. Tipe VARCHAR didukung.

  • Nilai Kembali:

    Mengembalikan nilai tipe VARCHAR.

  • Contoh:

    -- Metode 1: Panggilan langsung (Disarankan)
    SELECT hg_spark_funcs.URL_ENCODE(CONCAT('www.','Chinese',a,'.com')) FROM public.spark_test;
    
    -- Metode 2: Atur jalur pencarian lalu panggil fungsi
    SET search_path = 'hg_spark_funcs';
    SELECT URL_ENCODE(CONCAT('www.','Chinese',a,'.com')) FROM public.spark_test;

    Hasil berikut dikembalikan:

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