本文為您介紹Designer提供的類型轉換組件。您可以將任意類型特徵轉成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 | 否 | 輸入表中,參與訓練的分區。支援以下格式:
說明 如果指定多個分區,則使用英文逗號(,)分隔。 | 所有分區 |
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