合并列演算法組件是將兩張表的資料按列合并,需要表的行數保持一致,否則報錯。如果兩張表只有一張存在分區,則分區表需要串連第二個輸入連接埠。
組件配置
您可以使用以下任意一種方式,配置合并列組件參數。
方式一:可視化方式
選取左表待合并的欄位列,產生結果儲存到右輸入表的指定列。
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name appendColumns
-project algo_public
-DinputTableNames=maple_test_appendcol_basic_input1,maple_test_appendcol_basic_input2
-DoutputTableName=maple_test_appendcol_setOutCol_output
-DoutputTableColNames=x0,x1,x2,x3,x4,x5,x6,x7,x8,x9;
參數名稱 | 是否必選 | 參數描述 | 預設值 |
inputTableNames | 是 | 輸入表的表名,兩個表以逗號(,)分隔。 | 無 |
outputTableName | 是 | 輸出表的名稱 | 無 |
selectedColNamesList | 否 | 與輸入表對應的已選中的列名列表:
說明 如果選擇兩張表所有的列,整個參數內容需用半形引號("")括起來,否則半形分號(;)會被系統作為結束標誌。如果某張表全選,可以省略所有列名,但必須保留相應的半形分號(;)。 | 無 |
inputPartitionsInfoList | 否 | 與輸入表對應的已選擇的partition列表:
說明 如果選中所有partition,整個參數內容需要使用半形引號("")括起來,否則半形分號(;)會被系統當做結束標誌。如果某張表不用按照partition分割,則可省略所有partition名,但相應半形分號(;)必須保留。 | 無 |
autoRenameCol | 否 | 輸出表各列是否自動命名。 | false |
outputTableColNames | 否 | 輸出表中各列的新列名,不填則輸出原表中選擇列的列名。 重要 如果autoRenameCol為True時,則該參數無意義。 | 無 |
lifecycle | 否 | 輸出表的生命週期,取值範圍為正整數。 | 無 |
coreNum | 否 | 節點個數,與參數memSizePerCore配對使用,正整數,取值範圍[1, 9999]。 | 預設系統自動計算 |
memSizePerCore | 否 | 單個節點記憶體大小,單位MB,正整數,取值範圍[1024, 64*1024]。 | 預設系統自動計算 |
樣本
將以下兩張源表進行合并列操作:
- 源表1
表 1. maple_test_appendcol_basic_input1 col0:bigint col1:double col2:string col3:Datetime col4:Boolean 10 0.0 aaaa 2015-10-01 00:00:00 TRUE 11 1.0 aaaa 2015-10-01 00:00:00 FALSE 12 2.0 aaaa 2015-10-01 00:00:00 TRUE 13 3.0 aaaa 2015-10-01 00:00:00 TRUE 14 4.0 aaaa 2015-10-01 00:00:00 TRUE - 源表2
表 2. maple_test_appendcol_basic_input2 col10:bigint col11:double col12:string col13:Datetime col14:Boolean 110 10.0 2aaaa 2015-10-01 00:00:00 TRUE 111 11.0 2aaaa 2015-10-01 00:00:00 FALSE 112 12.0 2aaaa 2015-10-01 00:00:00 TRUE 113 13.0 2aaaa 2015-10-01 00:00:00 TRUE 114 14.0 2aaaa 2015-10-01 00:00:00 FALSE
PAI -name appendColumns
-project algo_public
-DinputTableNames=maple_test_appendcol_basic_input1,maple_test_appendcol_basic_input2
-DoutputTableName=maple_test_appendcol_setOutCol_output
-DoutputTableColNames=x0,x1,x2,x3,x4,x5,x6,x7,x8,x9;
最終的輸出表如下所示。x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 |
10 | 0 | aaaa | 2015-10-01 00:00:00 | true | 110 | 10 | 2aaaa | 2015-10-01 00:00:00 | true |
11 | 1 | aaaa | 2015-10-01 00:00:00 | false | 111 | 11 | 2aaaa | 2015-10-01 00:00:00 | false |
12 | 2 | aaaa | 2015-10-01 00:00:00 | true | 112 | 12 | 2aaaa | 2015-10-01 00:00:00 | true |
13 | 3 | aaaa | 2015-10-01 00:00:00 | true | 113 | 13 | 2aaaa | 2015-10-01 00:00:00 | true |
14 | 4 | aaaa | 2015-10-01 00:00:00 | true | 114 | 14 | 2aaaa | 2015-10-01 00:00:00 | false |