Bối cảnh: Tôi có khung dữ liệu có hai cột: nhãn và các đối tượng địa lý.Đính kèm siêu dữ liệu vào cột vectơ trong Spark
org.apache.spark.sql.DataFrame = [label: int, features: vector]
đâu tính năng là một mllib.linalg.VectorUDT kiểu số được xây dựng sử dụng VectorAssembler.
Câu hỏi: Có cách nào để chỉ định giản đồ cho vectơ tính năng không? Tôi muốn theo dõi tên của từng tính năng.
Cố gắng cho đến nay:
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}}
Nhưng không chắc làm thế nào để áp dụng điều này để một khung dữ liệu hiện có.
thể là "feat1" cột được trích xuất bằng tên thay vì chỉ mục? – gstvolvr
Loại. Bạn có thể sử dụng 'VectorSlicer'. – zero323
OK. Cảm ơn bạn! – gstvolvr