本文为您介绍PAI-Studio提供的数据合并算法,包括Join、合并列和合并列(UNION)。

Join

两张表通过关联信息,合成一张表,并确定输出的字段,与SQL的Join语句功能类似。

PAI-Studio仅支持通过可视化方式进行数据合并。
参数 描述
连接类型 支持左连接、内连接、右连接和全连接。
关联条件 仅支持等式。可手动添加或删除关联条件。
选择左表输出字段列 左表输出字段列
选择右表输出字段列 右表输出字段列

合并列

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

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    选取左表待合并的字段列,生成结果保存到右输入表的指定列。组件配置
  • 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;
    参数名称 是否必选 参数描述 默认值
    inputTableNames 输入表的表名,两个表以逗号(,)分隔。
    outputTableName 输出表的名称
    selectedColNamesList 与输入表对应的已选中的列名列表:
    • 同一个表的各列按逗号(,)分隔。
    • 不同表的各列按照分号(;)分隔。
    说明 如果选择两张表所有的列,整个参数内容需用引号括起来,否则分号会被系统作为结束标志。如果某张表全选,可以省略所有列名,但必须保留相应分号。
    inputPartitionsInfoList 与输入表对应的已选择的partition列表:
    • 同一个表的各partition按照正斜线(/)分隔。
    • 不同表的partition按照分号(;)分隔。
    说明 如果选中所有partition,整个参数内容需要使用引号括起来,否则分号会被系统当做结束标志。如果某张表不用按照partition分割,则可省略所有partition名,但相应分号必须保留。
    autoRenameCol 输出表各列是否自动命名。 false
    outputTableColNames 输出表中各列的新列名,不填则输出原表中选择列的列名。
    注意 如果autoRenameCol为Ture时,则该参数无意义。
    lifecycle 输出表的生命周期,取值范围为正整数。
    coreNum 节点个数,与参数memSizePerCore配对使用,正整数,取值范围[1, 9999] 默认系统自动计算
    memSizePerCore 单个节点内存大小,单位MB,正整数,取值范围[1024, 64*1024]。 默认系统自动计算
    示例
    • 源表
      表 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. 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

合并列(UNION)

将两张表的数据按行合并,左表及右表选择输出的字段个数以及类型应保持一致。整合了union和union all的功能。

PAI-Studio仅支持通过可视化方式进行数据合并。
参数 描述
选择左表联合列 进行联合操作时,左右表选择的列数需相同,对应列的类型需保证一致。
输入左边表的where条件 通过where条件实现数据过滤,与SQL类似,例如age>40
说明 仅支持以下操作符:
  • =
  • !=
  • >
  • <
  • >=
  • <=
  • like
  • rlike
选择右表联合列 进行联合操作时,左右表选择的列数需相同,对应列的类型需保证一致。
输入右表的where条件 通过where条件实现数据过滤,与SQL类似,例如age>40
说明 仅支持以下操作符:
  • =
  • !=
  • >
  • <
  • >=
  • <=
  • like
  • rlike
去重 去重生成的数据表的重复行,系统默认勾选去重。