合并列算法组件是将两张表的数据按列合并,需要表的行数保持一致,否则报错。如果两张表只有一张存在分区,则分区表需要连接第二个输入端口。

组件配置

您可以使用以下任意一种方式,配置合并列组件参数。

方式一:可视化方式

选取左表待合并的字段列,生成结果保存到右输入表的指定列。组件配置

方式二: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,整个参数内容需要使用半角引号("")括起来,否则半角分号(;)会被系统当做结束标志。如果某张表不用按照partition分割,则可省略所有partition名,但相应半角分号(;)必须保留。
autoRenameCol 输出表各列是否自动命名。 false
outputTableColNames 输出表中各列的新列名,不填则输出原表中选择列的列名。
重要 如果autoRenameColTrue时,则该参数无意义。
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命令行将上述两张源表进行合并列。
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;
最终的输出表如下所示。
表 3. maple_test_appendcol_setOutCol_output
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