该文档涉及的组件

    分位数 (QuantileBatchOp)

    Java 类名:com.alibaba.alink.operator.batch.statistics.QuantileBatchOp

    Python 类名:QuantileBatchOp

    功能介绍

    quantile

    参数说明

    名称 中文名称 描述 类型 是否必须? 取值范围 默认值
    quantileNum 分位个数 分位个数 Integer x >= 0
    selectedCol 选中的列名 计算列对应的列名 String 所选列类型为 [BIGDECIMAL, BIGINTEGER, BYTE, DOUBLE, FLOAT, INTEGER, LONG, SHORT]
    roundMode 取整的模式 取整的模式。当q是组的个数,k 是第k个组,total是总的样本大小时,第k组的边界索引应为(1.0 / q) * (total - 1) * k。这个值应该为整数,所以需要取整,取整时用到这个参数。 String “CEIL”, “FLOOR”, “ROUND” “ROUND”

    代码示例

    Python 代码

    from pyalink.alink import *
    
    import pandas as pd
    
    useLocalEnv(1)
    
    df = pd.DataFrame([
            [1.0, 0],
            [2.0, 1],
            [3.0, 2],
            [4.0, 3]
        ])
    
    batchData = BatchOperator.fromDataframe(df, schemaStr='f0 double, f1 double')
    StreamData = StreamOperator.fromDataframe(df, schemaStr='f0 double, f1 double')
    
    QuantileBatchOp()\
        .setSelectedCol("f0")\
        .setQuantileNum(100)\
        .linkFrom(batchData)\
        .print()
        
    QuantileStreamOp()\
        .setSelectedCols(["f0"])\
        .setQuantileNum(100)\
        .linkFrom(StreamData)\
        .print()   
        
    StreamOperator.execute()
    

    运行结果

          f0  quantile
    0    1.0         0
    1    1.0         1
    2    1.0         2
    3    1.0         3
    4    1.0         4
    ..   ...       ...
    96   4.0        96
    97   4.0        97
    98   4.0        98
    99   4.0        99
    100  4.0       100
    
    [101 rows x 2 columns]