全部產品
Search
文件中心

Platform For AI:Table2KV

更新時間:Jul 13, 2024

本文為您介紹如何使用Table2KV轉化普通表為KV(Key:Value)格式的表。

使用限制

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

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

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

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

組件配置

您可以使用以下任意一種方式,配置Table2KV組件參數。

方式一:可視化方式

Designer工作流程頁面配置組件參數。

頁簽

參數

描述

欄位設定

轉換列

需要轉換的列名稱。

保持原樣列

不需要轉換的列名稱。

key和value的分割符

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

kv間的分割符

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

參數設定

指定是否將列轉換為編號

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

  • 轉換

  • 不轉換

執行調優

核心數

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

記憶體數

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

方式二:PAI命令方式

使用PAI命令方式,配置該組件參數。您可以使用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

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

  • 1為轉換。

  • 0為不轉換。

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