本文为您介绍PAI-Studio提供的类型转换组件。您可以将任意类型特征转成STRING、DOUBLE和INT特征,并支持转换异常时的缺失值填充。

背景信息

  • 支持将表的字段类型转成另一个类型。
  • 支持多个字段同时转换成不同的类型。
  • 可以选择是否保持原来的转换前的数据列。

类型转换

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 描述 描述
    字段设置 转换为double类型的列 转换所选字段为DOUBLE类型。
    转换为double异常时默认填充值 转换为DOUBLE类型异常时的默认填充值。
    转换为int类型的列 转换所选字段为INT类型。
    转换为int异常时默认填充值 转换为DOUBLE类型异常时的默认填充值。
    转换为string类型的列 转换所选字段为STRING类型。
    转换为string异常时默认填充值 转换为STRING类型异常时的默认填充值。
    是否保留原列 列名增加前缀“typed_”。
    单个节点内存大小 取值范围为1024 MB~64*1024 MB。
    节点个数 与参数单个节点内存大小搭配使用,取值范围为[1, 9999]。
  • PAI命令方式
    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 from dual union all
    select false as f0,3.0 as f1,1 as f2 from dual union all
    select false as f0,4.0 as f1,1 as f2 from dual union all
    select true as f0,3.0 as f1,1 as f2 from dual union all
    select false as f0,3.0 as f1,1 as f2 from dual union all
    select false as f0,4.0 as f1,1 as f2 from dual union all
    select true as f0,3.0 as f1,1 as f2 from dual union all
    select false as f0,5.0 as f1,1 as f2 from dual union all
    select false as f0,3.0 as f1,1 as f2 from dual union all
    select true as f0,4.0 as f1,1 as f2 from dual union all
    select false as f0,3.0 as f1,1 as f2 from dual union all
    select true as f0,4.0 as f1,1 as f2 from dual
    )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