全部產品
Search
文件中心

Platform For AI:Table to KV

更新時間:Apr 03, 2025

Table to KV是一種用於將普通表格式資料轉換為索引值對(KV)格式的演算法。該演算法通過提取表格中的資料並將其結構化為Key:Value格式,便於資料存放區和檢索,提高資料處理的靈活性和效率。

使用限制

  • 轉換後的結果表不會顯示原表中的空值。您可以在結果表中指定需要保留的列,並且輸出的列與原表的列一致。

  • 如果存在輸入Key_map表,則轉化的列為Key_map表與KV表中Key的交集。

  • 如果存在的輸入Key_map表與輸入表類型衝突,則輸出的Key_map表使用您指定的類型。

  • 輸入表中需要轉換為KV的列只能為BIGINT或DOUBLE類型。

配置組件

方式一:可視化方式

在Designer工作流程頁面添加Table to KV組件,並在介面右側配置相關參數:

參數類型

參數

描述

欄位設定

轉換列

需要轉換的列名稱。

保持原樣列

不需要轉換的列名稱。

key和value的分割符

Key和Value之間的分割符。預設為半形冒號(:)。

kv間的分割符

KV對之間的分割符。預設為半形逗號(,)。

參數設定

指定是否將列轉換為編號

指定是否將列轉換為編號,取值如下:

  • 轉換

  • 不轉換

執行調優

核心數

系統根據輸入資料量,自動分配訓練的執行個體數量。

記憶體數

系統根據輸入資料量,自動分配記憶體。單位為MB。

方式二:PAI命令方式

使用PAI命令配置Table to KV組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼

PAI -name TableToKV
    -project algo_public
    -DinputTableName=maple_tabletokv_basic_input
    -DoutputTableName=maple_tabletokv_basic_output
    -DselectedColNames=col0,col1,col2
    -DappendColNames=rowid;

參數

是否必選

預設值

參數描述

inputTableName

輸入表的表名稱。

inputTablePartitions

預設選擇所有分區。

輸入表中指定參與訓練的分區,格式為Partition_name=value

如果是多級分區,格式為name1=value1/name2=value2;

如果指定多個分區,則需要使用半形逗號(,)分隔。

selectedColNames

預設選擇整張表。

選擇的列名稱,只能為BIGINT或DOUBLE類型。

appendColNames

需要保留的列名稱,該列會被原樣寫入至輸出表中。

outputTableName

輸出的KV表名稱。

kvDelimiter

半形冒號(:)

Key和Value的分割符。

itemDelimiter

半形逗號(,)

KV間的分割符。預設為半形逗號(,)。

convertColToIndexId

0

指定是否將列轉換為編號。取值如下:

  • 1為轉換。

  • 0為不轉換。

inputKeyMapTableName

半形引號(“”)

輸入的索引表名稱。

該參數僅當convertColToIndexId=1時有效。如果未指定該參數,則程式自動計算一套編號。

outputKeyMapTableName

convertColToIndexId決定。

輸出的索引表名稱。若且唯若convertColToIndexId=1時該參數必選。

lifecycle

輸出表的生命週期。取值為正整數。

coreNum

系統自動分配。

節點個數。取值範圍為[1, 9999]的正整數。與memSizePerCore參數配對使用。

memSizePerCore

系統自動分配。

單個節點的記憶體大小,單位為兆。取值範圍為[1024, 64*1024]的正整數。

樣本

  • 資料產生

    drop table if exists test;
    create table test as
    select * from
        (
            select 0 as rowid, 1 as col0, 1.1 as col1, 2 as col2 union all
            select 1 as rowid, 0 as col0, 1.2 as col1, 3 as col2 union all
            select 2 as rowid, 1 as col0, 2.3 as col1, 4 as col2 union all
            select 3 as rowid, 1 as col0, 0.0 as col1, 5 as col2
        ) tmp;
  • PAI命令列

    PAI -name TableToKV
        -project algo_public
        -DinputTableName=test
        -DoutputTableName=test_output
        -DselectedColNames=col0,col1,col2
        -DconvertColToIndexId=1
        -DoutputKeyMapTableName=test_key_map
        -DappendColNames=rowid;
  • 輸出說明

    輸出表test_output

    rowid

    kv

    0

    0:1,1:1.1,2:2

    1

    0:0,1:1.2,2:3

    2

    0:1,1:2.3,2:4

    3

    0:1,1:0,2:5

    輸出表test_key_map

    col_name

    col_index

    col_datatype

    col0

    0

    bigint

    col1

    1

    double

    col2

    2

    bigint