すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:行、列、値をKVペアに変換する

最終更新日:Jul 22, 2024

このトピックでは、Machine Learning Designer (旧称Machine Learning Studio) が提供する行、列、値をKVペアに変換するコンポーネントについて説明します。

このコンポーネントは、tritupleテーブル (row,col,value) をkey-valueテーブル (row,[col_id:value]) に変換します。

tritupleテーブルのデータ型 (行、col、値) は "XXD" または "XXL" です。 「X」は任意のデータ型を表し、「D」はDOUBLEデータ型を表し、「L」はBIGINTデータ型を表します。 変換後に生成されるkey-valueテーブルでは、行と値のデータ型は元の入力データと同じです。 生成されたcolのインデックステーブルはcol_id列にマップされます。 col_id列のデータ型はBIGINTです。

以下の表は、変換例を提供する。

  • 次の表は3つのテーブルです。

    id

    ワード

    カウント

    01

    a

    10

    01

    b

    20

    01

    c

    有効期限の 30

  • 次の表は、生成されたキー値テーブルです。

    id

    key_value

    01

    1:10;2:20;3:30

    説明

    キーと値の間、およびkey_value列の2つのキーと値のペアの間で区切り文字をカスタマイズできます。

  • 次の表は、生成されたインデックステーブルです。

    キー

    キー_id

    a

    1

    b

    2

    c

    3

Machine Learning Platform for AI (PAI) コンソールまたはPAIコマンドを使用して、コンポーネントを設定できます。

コンポーネントの設定

次のいずれかの方法を使用して、行、列、値をKVペアに変換するコンポーネントを設定できます。

方法1: パイプラインページでコンポーネントを設定する

Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで、行、列、および値をKVペアに設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

KV変換中に予約された列

tritupleテーブルがkey-valueテーブルに変換された後も変更されない列の名前。

出力キー

キーと値のテーブル内のキー。

出力値

キーと値のテーブルの値。

入力インデックステーブルのキー列

インデックステーブルのキー列の名前。

入力インデックステーブルのキーのインデックスID列

インデックステーブルのインデックス列の名前。

KVデリミタ

key-valueテーブル内のkeyとvalueを区切るために使用される区切り文字。 デフォルトの区切り文字はコロン (:) です。

KVペア区切り文字

キーと値のペアを区切るために使用される区切り文字。 デフォルト値はコンマ (,) です。

チューニング

インスタンスの総数

インスタンスの総数。 値は正の整数でなければなりません。 デフォルトでは、システムは入力データの量に基づいて値を計算します。

メモリサイズ (MB)

総メモリ。 値は正の整数でなければなりません。 デフォルトでは、システムは入力データの量に基づいて値を計算します。

方法2: PAIコマンドを使用する

PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。

PAI -name triple_to_kv
    -project algo_public
    -DinputTableName=test_data
    -DoutputTableName=test_kv_out
    -DindexOutputTableName=test_index_out
    -DidColName=id
    -DkeyColName=word
    -DvalueColName=count
    -DinputTablePartitions=ds=test1
    -DindexInputTableName=test_index_input
    -DindexInputKeyColName=word
    -DindexInputKeyIdColName=word_id
    -DkvDelimiter=:
    -DpairDelimiter=;
    -Dlifecycle=3

パラメーター

必須

説明

デフォルト値

inputTableName

入力テーブルの名前。

デフォルト値なし

idColName

tritupleテーブルがkey-valueテーブルに変換された後も変更されない列の名前。

デフォルト値なし

keyColName

キーと値のテーブルのキーを一覧表示する列の名前。

デフォルト値なし

valueColName

key-valueテーブルの値を一覧表示する列の名前。

デフォルト値なし

outputTableName

生成されたキーと値のテーブルの名前。

デフォルト値なし

indexOutputTableName

生成されたインデックステーブルの名前。

デフォルト値なし

indexInputTableName

不可

既存のインデックステーブルの名前。 テーブルにデータが含まれている必要があります。

デフォルト値なし

indexInputKeyColName

不可

インデックステーブルのキー列の名前。 このパラメーターは、indexInputTableNameパラメーターを設定する場合に必要です。

デフォルト値なし

indexInputKeyIdColName

不可

インデックステーブルのインデックス列の名前。 このパラメーターは、indexInputTableNameパラメーターを設定する場合に必要です。

デフォルト値なし

inputTablePartitions

不可

入力テーブルのパーティション名。 パーティション名は1つだけ入力できます。

デフォルト値なし

kvDelimiter

不可

key-valueテーブル内のkeyとvalueを区切るために使用される区切り文字。

コロン (:)

pairDelimiter

不可

キーと値のペアを区切るために使用される区切り文字。

コンマ (,)

ライフサイクル

不可

出力テーブルのライフサイクル。

デフォルト値なし

coreNum

不可

インスタンスの総数。 値は正の整数でなければなりません。

入力データ量に基づいて自動的に計算

memSizePerCore

不可

総メモリ。 値は正の整数でなければなりません。

入力データ量に基づいて自動的に計算

  • 入力

    drop table if exists triple2kv_test_input;
    create table triple2kv_test_input as
    select
      *
    from
    (
      select '01' as id, 'a' as word, 10 as count
        union all
          select '01' as id, 'b' as word, 20 as count
        union all
          select '01' as id, 'c' as word, 30 as count
        union all
          select '02' as id, 'a' as word, 100 as count
        union all
          select '02' as id, 'd' as word, 200 as count
        union all
          select '02' as id, 'e' as word, 300 as count
    ) tmp;
  • PAIコマンド

    PAI -name triple_to_kv
        -project algo_public
        -DinputTableName=triple2kv_test_input
        -DoutputTableName=triple2kv_test_input_out
        -DindexOutputTableName=triple2kv_test_input_index_out
        -DidColName=id
        -DkeyColName=word
        -DvalueColName=count
        -Dlifecycle=1;
  • Output

    • キー値テーブルtriple2kv_test_input_out

      +------------+------------+
      | id         | key_value  |
      +------------+------------+
      | 02         | 1:100;4:200;5:300 |
      | 01         | 1:10;2:20;3:30 |
      +------------+------------+
    • インデックステーブル

      +------------+------------+
      | key        | key_id     |
      +------------+------------+
      | a          | 1          |
      | b          | 2          |
      | c          | 3          |
      | d          | 4          |
      | e          | 5          |
      +------------+------------+