功能介绍

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

参数说明

名称 中文名称 描述 类型 是否必须? 默认值
selectedCols 选择的列名 计算列对应的列名列表 String[]
reservedCols 算法保留列名 算法保留列 String[] null
outputCols 输出结果列列名数组 输出结果列列名数组,可选,默认null String[] null
handleInvalid 未知Token处理策略 未知Token处理策略,”keep”, “skip”, “error” String “keep”
encode 编码方式 编码方式,”INDEX”, “VECTOR”, “ASSEMBLED_VECTOR” String INDEX
dropLast 是否删除最后一个元素 是否删除最后一个元素 Boolean true
leftOpen 是否左开右闭 是否左开右闭 Boolean true
cutsArray 多列的切分点 多列的切分点 double[][]

脚本示例

脚本代码

  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"]).setCutsArray([[2]])
  13. bucketizer.linkFrom(inOp1).print()
  14. bucketizer = BucketizerStreamOp().setSelectedCols(["double"]).setCutsArray([[2]])
  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