我有一个使用Spark的VectorAssembler打包成矢量向量的特征列,如下所示。 data是输入数据帧(类型spark.sql.DataFrame)。将特征的Spark向量转换为数组
val featureCols = Array(“feature_1″,”feature_2″,”feature_3”)
val featureAssembler = new VectorAssembler().setInputCols(featureCols).setOutputCol(“features”)
val dataWithFeatures = featureAssembler.transform(data)
我开发使用Classifier和ClassificationModel开发API的自定义分类。 ClassificationModel需要开发一个predictRaw()函数,该函数从模型输出预测标签的向量。
def predictRaw(features: FeaturesType) : Vector
这个功能是通过该API集和需要一个参数,的FeaturesType特征,并输出向量(这在我的情况下,我要带去是火花DenseVector作为DenseVector延伸Vector性状)。
由于VectorAssembler的包装,features列的类型为Vector,每个元素本身就是一个向量,它是每个训练样本的原始特征的向量。例如:
设有柱 – 型的矢量
[1.0,2.0,3.0] – 元素1,本身的矢量
[3.5,4.5,5.5] – element2的,本身的载体
我需要将这些功能提取到Array[