All Products
Search
Document Center

Platform For AI:KV to Table

Last Updated:Apr 02, 2026

KV to Table mengonversi data berformat key-value (KV) yang sparse menjadi kolom tabular reguler, dengan menggunakan setiap kunci sebagai nama kolom dan setiap nilai sebagai nilai sel yang sesuai. Hasilnya, data fitur berkode KV dapat langsung digunakan untuk pelatihan model dan analisis lanjutan.

Cara kerja

Diberikan satu kolom KV di mana setiap baris berisi pasangan kunci:nilai yang dipisahkan koma:

Input — satu baris per sampel, satu kolom KV:

kv
1:1,2:2,3:-3.3
1:10,2:20,3:-33.3

Output — satu kolom numerik per kunci:

kv_1kv_2kv_3
1.02.0-3.3
10.020.0-33.3

Komponen ini juga menghasilkan tabel key_map yang mencatat pemetaan antara nama kolom dan indeks kunci:

col_namecol_indexcol_type
kv_11double
kv_22double
kv_33double

Kolom hasil konversi muncul sebelum kolom tambahan apa pun dalam output.

Konsep utama

Format KV

Setiap nilai dalam kolom KV harus mengikuti format kunci:nilai,kunci:nilai,... dengan ketentuan berikut:

  • Kunci adalah indeks nama kolom (bilangan bulat).

  • Nilai harus bertipe BIGINT atau DOUBLE. Hanya kolom dengan tipe data numerik yang dapat dikonversi.

  • Jika suatu baris berisi kunci duplikat, komponen akan menjumlahkan nilainya.

Tabel key_map

Tabel key_map mencatat pemetaan nama kolom ke indeks kunci serta informasi tipe data. Skema tabel ini terdiri dari tiga kolom STRING:

KolomDeskripsi
col_nameNama kolom output
col_indexIndeks kunci
col_datatypeTipe data. Nilai default adalah DOUBLE jika tidak ditentukan

Anda dapat mengimpor tabel key_map kustom untuk mengontrol kunci mana yang dikonversi dan tipe data apa yang digunakan oleh kolom output. Saat tabel key_map diimpor, hanya kunci yang ada di kedua tempat—tabel key_map dan kolom KV input—yang dikonversi, dan tipe data kolom output akan mengikuti tabel tersebut.

Komponen selalu mengekspor tabel key_map, terlepas dari apakah tabel tersebut diimpor atau tidak.

Pemberian nama kolom output

Nama kolom output mengikuti pola {nama_kolom_kv}_{kunci} — misalnya, kolom KV bernama kv dengan kunci 1 menghasilkan kv_1.

Karakter berikut tidak didukung dalam nama kolom: %&()*+-./;<>=?

Nama yang lebih panjang dari 128 karakter akan dipotong menjadi 128 karakter.

Jika nama kolom tambahan sama dengan nama kolom hasil konversi, komponen akan melaporkan error.

Batasan

  • Maksimum kolom output: 1.200. Saat top1200 diatur ke true, komponen hanya mengekspor 1.200 kolom pertama jika output melebihi batas ini. Jika diatur ke false, komponen akan melaporkan error.

  • Maksimum baris input: 100.000.000

Konfigurasi komponen

Metode 1: Machine Learning Designer

Konfigurasikan komponen KV to Table pada kanvas pipeline di Machine Learning Designer.

TabParameterDeskripsi
Fields settingKV ColumnNama kolom yang berisi data dalam format key-value
Fields settingAppended ColumnsNama kolom yang diteruskan tanpa perubahan
Fields settingKV DelimiterPembatas antara kunci dan nilai. Default: :
Fields settingKV Pair DelimiterPembatas antara pasangan key-value. Default: ,
Parameters settingReserve the First 1,200 ColumnsJika diaktifkan, hanya mengekspor 1.200 kolom pertama jika output melebihi batas. Jika dinonaktifkan, komponen akan melaporkan error
TuningComputing CoresJumlah core. Dialokasikan secara otomatis berdasarkan volume data input
TuningMemory Size per CoreMemori per core, dalam MB. Dialokasikan secara otomatis berdasarkan volume data input

Metode 2: Perintah PAI

Jalankan komponen ini dari komponen SQL Script menggunakan perintah PAI. Untuk informasi lebih lanjut, lihat SQL Script.

PAI -name KVToTable
    -project algo_public
    -DinputTableName=test
    -DoutputTableName=test_out
    -DoutputKeyMapTableName=test_keymap_out
    -DkvColName=kv;
ParameterWajibDefaultDeskripsi
inputTableNameYaNama tabel input
kvColNameYaNama kolom KV
outputTableNameYaNama tabel output
outputKeyMapTableNameYaNama tabel key_map output
inputKeyMapTableNameTidakNama tabel key_map input untuk mengontrol pemetaan kunci ke kolom
appendColNameTidakNama kolom yang diteruskan tanpa perubahan
inputTablePartitionsTidakSemua partisiPartisi yang dibaca dari tabel input. Format: Partition_name=value. Untuk partisi multi-level: name1=value1/name2=value2. Pisahkan beberapa partisi dengan koma
kvDelimiterTidak:Pembatas antara kunci dan nilai
itemDelimiterTidak,Pembatas antara pasangan key-value
top1200TidaktrueApakah hanya mengekspor 1.200 kolom pertama saat output melebihi batas. Atur ke false untuk melaporkan error
lifecycleTidakSiklus hidup tabel output
coreNumTidakDitentukan sistemJumlah core. Harus berupa bilangan bulat positif
memSizePerCoreTidakDitentukan sistemMemori per core, dalam MB. Rentang valid: (100, 65536)

Contoh

  1. Buat tabel input:

    DROP TABLE IF EXISTS test;
    CREATE TABLE test AS
    SELECT * FROM
        (
            SELECT '1:1,2:2,3:-3.3' AS kv UNION ALL
            SELECT '1:10,2:20,3:-33.3' AS kv
        ) tmp;
  2. Jalankan komponen KV to Table:

    PAI -name KVToTable
        -project algo_public
        -DinputTableName=test
        -DoutputTableName=test_out
        -DoutputKeyMapTableName=test_keymap_out
        -DkvColName=kv;
  3. Periksa tabel output (test_out):

    kv_1kv_2kv_3
    1.02.0-3.3
    10.020.0-33.3
  4. Periksa tabel key_map (test_keymap_out):

    col_namecol_indexcol_type
    kv_11double
    kv_22double
    kv_33double

FAQ

Kolom mana saja yang dikonversi saat saya menyediakan tabel key_map?

Hanya kolom yang kuncinya muncul di kedua tempat—tabel key_map dan kolom KV input—yang dikonversi.

Tipe data apa yang digunakan oleh kolom output saat saya menyediakan tabel key_map?

Kolom output menggunakan tipe data yang ditentukan dalam kolom col_datatype pada tabel key_map. Jika col_datatype tidak ditentukan, output akan menggunakan tipe default DOUBLE.

Mengapa terjadi konflik nama kolom?

Jika kolom tambahan memiliki nama yang sama dengan kolom kunci hasil konversi, komponen akan melaporkan error. Ganti nama salah satu kolom yang bentrok sebelum menjalankan komponen.

Tipe kolom apa saja yang dapat dikonversi?

Hanya kolom dengan tipe data numerik yang dapat dikonversi.

Apa yang terjadi jika nama kolom melebihi 128 karakter?

Hanya 128 karakter pertama yang dipertahankan.

Apa yang terjadi jika suatu baris berisi kunci duplikat?

Komponen akan menjumlahkan nilai dari kunci duplikat tersebut.