Контекст: у меня есть фрейм данных с двумя столбцами: метка и функции.
org.apache.spark.sql.DataFrame = [label: int, features: vector]
Где features — это mllib.linalg.VectorUDT числового типа, созданный с помощью VectorAssembler.
Вопрос. Есть ли способ назначить схему вектору признаков? Я хочу отслеживать название каждой функции.
На данный момент пробовали:
val defaultAttr = NumericAttribute.defaultAttr
val attrs = Array("feat1", "feat2", "feat3").map(defaultAttr.withName)
val attrGroup = new AttributeGroup("userFeatures", attrs.asInstanceOf[Array[Attribute]])
scala> attrGroup.toMetadata
res197: org.apache.spark.sql.types.Metadata = {"ml_attr":{"attrs":{"numeric":[{"idx":0,"name":"f1"},{"idx":1,"name":"f2"},{"idx":2,"name":"f3"}]},"num_attrs":3}}
Но не был уверен, как применить это к существующему фрейму данных.