Kontekst: Mam ramkę danych z dwiema kolumnami: etykietą i funkcjami.Dołącz metadane do kolumny wektorowej w Spark
org.apache.spark.sql.DataFrame = [label: int, features: vector]
Gdzie cechy jest mllib.linalg.VectorUDT typu numerycznego zbudowany przy użyciu VectorAssembler.
Pytanie: Czy istnieje sposób przypisania schematu do wektora funkcji? Chcę śledzić nazwę każdej funkcji.
próbowałem dotąd:
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}}
Ale nie był pewien, jak zastosować to do istniejącej ramki danych.
Czyżby "feat1" kolumna być wyodrębnione przy użyciu nazwy zamiast indeksu? – gstvolvr
Rodzaj. Możesz użyć 'VectorSlicer'. – zero323
Rozumiem. Dziękuję Ci! – gstvolvr