このトピックでは、Machine Learning Designerが提供するTable to KVコンポーネントを使用して、共通形式のテーブルをキー値形式のテーブルに変換する方法について説明します。
制限事項
出力テーブルには、入力テーブルのnull値は表示されません。 出力テーブルに保持する列を指定できます。 指定された列は元の形式で保持されます。
入力key_mapテーブルが存在する場合、出力テーブルに変換される列は、key_mapテーブルとkey-valueテーブルの両方にキーが存在する列です。
入力key_mapテーブルが存在し、key_mapテーブルで指定されたデータ型が入力テーブルの特定の列のデータ型と異なる場合、出力key_mapテーブルは指定したデータ型を使用します。
入力テーブルでキーと値の形式に変換する列は、BIGINTまたはDOUBLEデータ型である必要があります。
テーブルをKVコンポーネントに設定する
次のいずれかの方法を使用して、Table to KVコンポーネントを設定できます。
方法1: 視覚化された方法でテーブルをKVコンポーネントに設定する
Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで、Table to KVコンポーネントのパラメーターを設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | 変換する列 | 変換する列の名前。 |
予約済み列 | 保持する列の名前。 | |
KVデリミタ | キーと値の間で使用される区切り文字。 Colons (:) はデフォルトで使用されます。 | |
KVペア区切り文字 | キーと値のペア間で使用される区切り文字。 デフォルトでは、Commas (,) が使用されます。 | |
パラメーター設定 | 列をIDに変換 | 列をIDに変換するかどうかを指定します。 有効な値:
|
チューニング | コア | コアの数。 システムは、入力データの量に基づいて、トレーニングに使用されるコアを自動的に割り当てます。 |
メモリサイズ | 各コアのメモリサイズ。 システムは、入力データの量に基づいてメモリを自動的に割り当てます。 単位:MB。 |
方法2: PAIコマンドを使用してテーブルをKVコンポーネントに設定する
Table to KVコンポーネントのパラメーターは、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 | 不可 | トレーニング用に入力テーブルから選択されたパーティション。 このパラメーターは、 マルチレベルパーティションが存在する場合、このパラメーターは 複数のパーティションはコンマ (,) で区切ります。 | 選択されたすべてのパーティション |
selectedColNames | 不可 | 変換するために選択した列の名前。 選択する列のデータ型は、BIGINTまたはDOUBLEである必要があります。 | 選択されたすべての列 |
appendColNames | 不可 | 保持する列の名前。 指定された列は元の形式で保持されます。 | デフォルト値なし |
outputTableName | 可 | 出力テーブルの名前。 | デフォルト値なし |
kvDelimiter | 不可 | キーと値の間で使用される区切り文字。 | コロン (:) |
itemDelimiter | 不可 | キーと値のペア間で使用される区切り文字。 | コンマ (,) |
convertColToIndexId | 不可 | 列をIDに変換するかどうかを指定します。 有効な値:
| 0 |
inputKeyMapTableName | 不可 | 入力インデックステーブルの名前。 このパラメーターは、 | null |
outputKeyMapTableName | convertColToIndexIdに基づいて決定 | 出力インデックステーブルの名前。 このパラメーターは、convertColToIndexIdパラメーターが1に設定されている場合にのみ必要です。 | デフォルト値なし |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 このパラメーターの値は正の整数でなければなりません。 | デフォルト値なし |
coreNum | 不可 | コアの数。 このパラメーターの値は正の整数でなければなりません。 有効な値: [1,9999] 。 このパラメーターは、memSizePerCoreパラメーターと一緒に使用する必要があります。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 このパラメーターの値は正の整数でなければなりません。 有効値: [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