描述:Bucketizer是一个Transformer,只能对DataFrame进行单特征转换,而且特征的数据类型必须是DoubleType。spa
参数信息 | 参数描述 | 备注 | 其余 |
setInputCol | String | DF中待变换的特征,特征类型必须为:DoubleType | 必填 |
setOutputCol | String | 变换后的特征名称,转换后的类型为:DoubleType | 必填 |
setSplits | Array[Double] | 分箱分位点:Array(Double.MinValue, 20, 50, 70, Double.MaxValue) | 必填 |
setHandleInvalid | String | 无效条目的处理方式,枚举值:["skip", "error", "keep"] | 可选 |
//特征名称 var feature = "weight" var feature_new = "weight_bucketizer" //分箱点[前闭后开] var splits: Array[Double] = Array(Double.MinValue, 20, 50, 70, Double.MaxValue) //数据预处理 var dataset = dataFrame.select(col(feature).cast(DataTypes.DoubleType)) //特征二值化 var transform = new Bucketizer() .setInputCol(feature) //待变换的特征 .setOutputCol(feature_new) //变换后的特征名称 .setSplits(splits) //分箱点[前闭后开] .setHandleInvalid("skip") //无效条目的处理方式[跳过] .transform(dataset) //show transform.show()
+------+-----------------+ |weight|weight_bucketizer| +------+-----------------+ | 45.0| 1.0| | 60.0| 2.0| | 69.0| 2.0| | 53.0| 2.0| | 90.0| 3.0| | 45.0| 1.0| | 53.0| 2.0| | 88.0| 3.0| | 82.0| 3.0| | 76.0| 3.0| +------+-----------------+
将人的体重进行离散化,将人群分为:【瘦,标准,胖】code