百分位是统计学术语,用于计算数据表列数据的百分位。一组数据从小到大排序,并计算相应数据的百分位,则某百分位所对应数据的值称为该百分位的百分位数。

背景信息

  • 系统仅支持Bigint,Double和Datetime类型的数据计算百分位。
  • 计算百分位时,空列,默认跳过。如果全部为空列,则运行报错。
  • colName支持配置多列数据。

组件配置

您可以使用以下任意一种方式,配置百分位组件参数。

方式一:可视化方式

在PAI-Designer(原PAI-Studio)工作流页面配置组件参数。
页签 参数 描述
参数设置 输入列 选择输入列的字段。
执行调优 核数量 节点个数。
每个核的内存大小 单个节点内存大小。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本
PAI -name Percentile
     -project algo_public
     -DinputTableName=maple_test_percentile_3col_input
     -DcolName=col0,col1,col2 -DoutputTableName=maple_test_percentile_3col_output;
参数名称 参数描述 是否
inputTableName 输入表名。
outputTableName 输出表名。
colName 计算的列名,默认值选择所有列。
说明 多个列名之间使用英文逗号(,)分割。
inputPartitions 系统默认选择所有分区。指定输入表的分区:
  • 指定单个分区,格式为partition_name=value
  • 指定多个分区,格式为name1=value1,name2=value2
    说明 多个分区之间用英文逗号(,)分隔。
  • 指定多级分区,格式为name1=value1/name2=value2
predictInputTableName 预测表表名,配置该项参数后即可输出预测结果。
predictInputTablePartitions 输入预测表分区。
predictSelectedColNames 预测表列名,系统默认选取全表。该列名需要与训练表中对应的列相同。
predictSelectedOriginalColNames 输入表中保持原有数据的列名,默认选择所有列,以英文逗号(,)分隔。
predictOutputTableName 输出预测表名,与predictInputTableName参数配对使用。
lifecycle 输出表的生命周期,系统默认无生命周期。
说明 仅支持输入正整数。
coreNum 节点个数,取值范围为[1, 9999]。与参数memSizePerCore配对使用。
说明 仅支持输入正整数。
memSizePerCore 单个节点内存大小,取值范围为范围[1024, 64*1024] ,单位MB。
说明 仅支持输入正整数。

示例

  • 输入表
    col0:double(1000行) col1:bigint(100行) col2:bigint(300行)
    962 88 Tue Oct 15 00:26:40 CST 1974
    218 99 Thu Jan 04 20:53:20 CST 1973
    565 44 Sat Mar 09 02:40:00 CST 1974
    314 68 Mon Aug 11 22:40:00 CST 1975
    583 13 Sat Aug 23 12:26:40 CST 1975
    615 87 Tue May 25 14:13:20 CST 1971
    70 53 Fri Mar 23 09:20:00 CST 1979
    929 63 Mon Jul 03 16:26:40 CST 1972
    249 48 Thu Mar 15 07:33:20 CST 1973
    428 62 Wed Mar 17 03:33:20 CST 1971
    119 1 Thu Jun 26 15:33:20 CST 1975
    756 27 Mon Jan 30 17:20:00 CST 1978
    490 75 Wed Dec 11 21:20:00 CST 1974
    957 12 Sun Jul 05 12:26:40 CST 1970
    80 22 Wed Oct 04 06:40:00 CST 1972
    681 57 Wed Nov 03 15:06:40 CST 1971
    13 95 Sat Sep 12 23:06:40 CST 1970
  • PAI命令
     PAI -name Percentile
         -project algo_public
         -DinputTableName=maple_test_percentile_3col_input
         -DcolName=col0,col1,col2 -DoutputTableName=maple_test_percentile_3col_output;
  • 输出表
    quantile:bigint col0:double col1:bigint col2:datetime
    0 0.0 0 Thu Jan 01 08:00:00 CST 1970
    1 9.0 0 Sat Jan 24 11:33:20 CST 1970
    2 19.0 1 Sat Feb 28 04:53:20 CST 1970
    3 29.0 2 Fri Apr 03 22:13:20 CST 1970
    4 39.0 3 Fri May 08 15:33:20 CST 1970
    5 49.0 4 Fri Jun 12 08:53:20 CST 1970
    6 59.0 5 Fri Jul 17 02:13:20 CST 1970
    7 69.0 6 Thu Aug 20 19:33:20 CST 1970
    8 79.0 7 Thu Sep 24 12:53:20 CST 1970
    9 89.0 8 Thu Oct 29 06:13:20 CST 1970
    10 99.0 9 Wed Dec 02 23:33:20 CST 1970
    11 109.0 10 Wed Jan 06 16:53:20 CST 1971
    12 119.0 11 Wed Feb 10 10:13:20 CST 1971
    13 129.0 12 Wed Mar 17 03:33:20 CST 1971
    14 139.0 13 Tue Apr 20 20:53:20 CST 1971
    15 149.0 14 Tue May 25 14:13:20 CST 1971
    16 159.0 15 Tue Jun 29 07:33:20 CST 1971
    ... ... ... ...
    84 839.0 83 Thu Dec 15 10:13:20 CST 1977
    85 849.0 84 Thu Jan 19 03:33:20 CST 1978
    86 859.0 85 Wed Feb 22 20:53:20 CST 1978
    87 869.0 86 Wed Mar 29 14:13:20 CST 1978
    88 879.0 87 Wed May 03 07:33:20 CST 1978
    89 889.0 88 Wed Jun 07 00:53:20 CST 1978
    90 899.0 89 Tue Jul 11 18:13:20 CST 1978
    91 909.0 90 Tue Aug 15 11:33:20 CST 1978
    92 919.0 91 Tue Sep 19 04:53:20 CST 1978
    93 929.0 92 Mon Oct 23 22:13:20 CST 1978
    94 939.0 93 Mon Nov 27 15:33:20 CST 1978
    95 949.0 94 Mon Jan 01 08:53:20 CST 1979
    96 959.0 95 Mon Feb 05 02:13:20 CST 1979
    97 969.0 96 Sun Mar 11 19:33:20 CST 1979
    98 979.0 97 Sun Apr 15 12:53:20 CST 1979
    99 989.0 98 Sun May 20 06:13:20 CST 1979
    100 999.0 99 Sat Jun 23 23:33:20 CST 1979