全部產品
Search
文件中心

Platform For AI:類型轉換

更新時間:Apr 09, 2025

類型轉換是一種資料處理組件,能夠將任意類型的特徵轉換為STRING、DOUBLE和INT類型特徵。該組件還支援在轉換異常時進行缺失值填充,以保證資料完整性和一致性。

演算法說明

  • 支援將表的欄位類型轉成另一個類型。

  • 支援多個欄位同時轉換成不同的類型。

  • 支援ODPS2.0數實值型別欄位的轉換,例如decimal,float,int。

    說明

    該功能僅支援在華北2(北京)、華東2(上海)、華東1(杭州)、華南1(深圳)、華北3(張家口)和西南1(成都)使用。

  • 可以選擇是否保持原來的轉換前的資料列。

組件配置

方式一:可視化方式

在Designer工作流程頁面添加類型轉換組件,並在介面右側配置相關參數:

參數類型

參數

描述

欄位設定

轉換為double類型的列

轉換所選欄位為DOUBLE類型。

轉換為double異常時預設填儲值

轉換為DOUBLE類型異常時的預設填儲值。

轉換為int類型的列

轉換所選欄位為INT類型。

轉換為int異常時預設填儲值

轉換為INT類型異常時的預設填儲值。

轉換為string類型的列

轉換所選欄位為STRING類型。

轉換為string異常時預設填儲值

轉換為STRING類型異常時的預設填儲值。

是否保留原列

列名增加首碼“typed_”。

單個結點記憶體大小

取值範圍為1024 MB~64*1024 MB。

節點個數

與參數單個節點記憶體大小搭配使用,取值範圍為[1, 9999]。

方式二:PAI命令方式

使用PAI命令配置類型轉換組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼

pai -project algo_public
    -name type_transform_v1
    -DinputTable=type_test
    -Dcols_to_string="f0"
    -Ddefault_double_value=0.0
    -DoutputTable=type_test_output;

參數

是否必選

預設值

參數描述

inputTable

輸入表的表名。

inputTablePartitions

所有分區

輸入表中,參與訓練的分區。支援以下格式:

  • Partition_name=value

  • name1=value1/name2=value2:多級格式

說明

如果指定多個分區,則使用英文逗號(,)分隔。

outputTable

類型轉換的結果表。

reserveOldFeat

是否保持原來變換前的資料列。

cols_to_double

需要類型轉換到DOUBLE的特徵列。

cols_to_string

需要類型轉換到STRING的特徵列。

cols_to_int

需要類型轉換到INT的特徵列。

default_int_value

0

當特徵欄位為空白時的值。

default_double_value

0.0

當特徵欄位為空白時的值。

default_string_value

“”

當特徵欄位為空白時的值。

coreNum

預設自動計算

節點數量。與memSizePerCore搭配使用,取值範圍為[1, 9999]。

memSizePerCore

預設自動計算

單個節點記憶體大小,單位M,取值範圍為[1024, 64 *1024]。

lifecycle

7

輸出表生命週期。

樣本

  • 測試資料產生

    create table transform_test as
    select * from
    (
    select true as f0,2.0 as f1,1 as f2 union all
    select false as f0,3.0 as f1,1 as f2 union all
    select false as f0,4.0 as f1,1 as f2 union all
    select true as f0,3.0 as f1,1 as f2 union all
    select false as f0,3.0 as f1,1 as f2 union all
    select false as f0,4.0 as f1,1 as f2 union all
    select true as f0,3.0 as f1,1 as f2 union all
    select false as f0,5.0 as f1,1 as f2 union all
    select false as f0,3.0 as f1,1 as f2 union all
    select true as f0,4.0 as f1,1 as f2 union all
    select false as f0,3.0 as f1,1 as f2 union all
    select true as f0,4.0 as f1,1 as f2
    )tmp;
  • 訓練資料展示

    f0

    f1

    f2

    false

    3.0

    1

    false

    3.0

    1

    true

    2.0

    1

    true

    4.0

    1

    false

    4.0

    1

    false

    3.0

    1

    false

    3.0

    1

    true

    3.0

    1

    false

    4.0

    1

    true

    4.0

    1

    false

    5.0

    1

    true

    3.0

    1

  • 訓練PAI命令

    pai -project projectxlib4
        -name type_transform_v1
        -DinputTable=transform_test
        -Dcols_to_double=f0
        -Dcols_to_int=f1
        -Dcols_to_string=f2
        -DoutputTable=trans_test_output;
  • 輸出說明

    結果表

    f0

    f1

    f2

    0.0

    3

    1

    0.0

    3

    1

    1.0

    2

    1

    1.0

    4

    1

    0.0

    4

    1

    0.0

    3

    1

    1.0

    3

    1

    0.0

    4

    1

    0.0

    3

    1

    0.0

    5

    1

    1.0

    3

    1

    1.0

    4

    1