• 功能介绍
  • 参数说明
  • 脚本示例
    • 脚本代码
    • 脚本运行结果
      • 输出数据

    功能介绍

    给定切分点,将连续变量分桶,可支持单列输入或多列输入,对应需要给出单列切分点或者多列切分点。

    每列切分点需要严格递增,且至少有三个点。

    参数说明

    名称 中文名称 描述 类型 是否必须? 默认值
    handleInvalid 如何处理无效值 可以选择skip:跳过,error:报错抛异常。 String “error”
    selectedCols 计算列对应的列名列表 计算列对应的列名列表 String[]
    splitsArray 多列的切分点 多列的切分点 String[]
    outputCols 输出结果列列名数组 输出结果列列名数组,可选,默认null String[] null
    reservedCols 算法保留列名 算法保留列 String[] null

    脚本示例

    脚本代码

    1. import numpy as np
    2. import pandas as pd
    3. data = np.array([
    4. [1.1, True, "2", "A"],
    5. [1.1, False, "2", "B"],
    6. [1.1, True, "1", "B"],
    7. [2.2, True, "1", "A"]
    8. ])
    9. df = pd.DataFrame({"double": data[:, 0], "bool": data[:, 1], "number": data[:, 2], "str": data[:, 3]})
    10. inOp1 = BatchOperator.fromDataframe(df, schemaStr='double double, bool boolean, number int, str string')
    11. inOp2 = StreamOperator.fromDataframe(df, schemaStr='double double, bool boolean, number int, str string')
    12. bucketizer = BucketizerBatchOp().setSelectedCols(["double"]).setSplitsArray(["-Infinity:2:Infinity"])
    13. bucketizer.linkFrom(inOp1).print()
    14. bucketizer = BucketizerStreamOp().setSelectedCols(["double"]).setSplitsArray(["-Infinity:2:Infinity"])
    15. bucketizer.linkFrom(inOp2).print()
    16. StreamOperator.execute()

    脚本运行结果

    输出数据
    1. rowID double bool number str
    2. 0 0 True 2 A
    3. 1 0 False 2 B
    4. 2 0 True 1 B
    5. 3 1 True 1 A