全部产品
Search
文档中心

MaxCompute:Fungsi Lambda

更新时间:Jun 19, 2025

Fungsi Lambda adalah fungsi anonim yang tidak memerlukan nama dan dapat digunakan sebagai parameter dalam fungsi atau metode lain. Topik ini menjelaskan batasan, sintaksis, serta contoh penggunaan Fungsi Lambda.

Batasan

  • Subquery, seperti x->2+(SELECT3), tidak didukung.

  • Operasi agregat, seperti x -> max(y), tidak didukung.

Sintaksis

Sintaksis: Daftar parameter -> Ekspresi atau blok kode.

  • Daftar parameter: daftar parameter yang diterima oleh Fungsi Lambda. Daftar ini bisa kosong atau berisi satu atau lebih parameter.

  • ->: pembatas yang digunakan untuk memisahkan daftar parameter dari ekspresi atau blok kode.

Contoh

  • Contoh 1: Menghitung nilai kuadrat dari kolom array.

    SELECT numbers,transform(numbers, n -> n * n) as squared_numbers
    FROM (
        VALUES (ARRAY(1, 2)),(ARRAY(3, 4)),(ARRAY(5, 6, 7))
    ) AS t(numbers);

    Hasil berikut dikembalikan:

    +------------+-----------------+
    | numbers    | squared_numbers |
    +------------+-----------------+
    | [5,6,7]    | [25,36,49]      |
    | [3,4]      | [9,16]          |
    | [1,2]      | [1,4]           |
    +------------+-----------------+
  • Contoh 2: Mengonversi array menjadi string.

    SELECT transform(prices, n -> CAST(n AS STRING ) || '$') as price_tags
    FROM (
        VALUES
            (ARRAY(100, 200)),(ARRAY(30, 4))
    ) AS t(prices);

    Hasil berikut dikembalikan:

    +------------+
    | price_tags |
    +------------+
    | ["30$","4$"] |
    | ["100$","200$"] |
    +------------+
  • Contoh 3: Menghitung nilai dari fungsi linier.

    SELECT xvalues, a, b,
           transform(xvalues, x -> a * x + b) as linear_function_values
    FROM (
        VALUES (ARRAY(1, 2), 10, 5),(ARRAY(3, 4), 4, 2)
    ) AS t(xvalues, a, b);

    Hasil berikut dikembalikan:

    +------------+------------+------------+------------------------+
    | xvalues    | a          | b          | linear_function_values |
    +------------+------------+------------+------------------------+
    | [3,4]      | 4          | 2          | [14,18]                |
    | [1,2]      | 10         | 5          | [15,25]                |
    +------------+------------+------------+------------------------+