全部产品
Search
文档中心

人工智能平台 PAI:类型转换

更新时间:May 17, 2024

本文为您介绍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

输入表中,参与训练的分区。支持以下格式:

  • 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 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