Spark Dataset<Row> 向量列到数组类型的转换
Spark Dataset<Row> Vector column to Array type conversion
我有一列 "features",它是一个向量。有没有办法将此 Vector 列转换为 Array 列?我正在使用 Spark 2.3 和 Java。
实际上,最后的 objective 是将 Vector 拆分为单独的列。
谢谢。
这可以通过 UserDefinedFunction
来完成。您可以这样定义一个:
import org.apache.spark.sql.types.*;
import org.apache.spark.sql.expressions.UserDefinedFunction;
import static org.apache.spark.sql.functions.*;
UserDefinedFunction toarray = udf(
(Vector v) -> v.toArray(), new ArrayType(DataTypes.DoubleType, false)
);
然后将其应用于 Column
:
import org.apache.spark.sql.Column;
Column featutesArray = toarray.apply(col("features"));
结果可以与 select
或 withColumn
一起使用。
the final objective is to split the Vector into individual columns.
这只是一个简单的索引问题 -
我有一列 "features",它是一个向量。有没有办法将此 Vector 列转换为 Array 列?我正在使用 Spark 2.3 和 Java。 实际上,最后的 objective 是将 Vector 拆分为单独的列。 谢谢。
这可以通过 UserDefinedFunction
来完成。您可以这样定义一个:
import org.apache.spark.sql.types.*;
import org.apache.spark.sql.expressions.UserDefinedFunction;
import static org.apache.spark.sql.functions.*;
UserDefinedFunction toarray = udf(
(Vector v) -> v.toArray(), new ArrayType(DataTypes.DoubleType, false)
);
然后将其应用于 Column
:
import org.apache.spark.sql.Column;
Column featutesArray = toarray.apply(col("features"));
结果可以与 select
或 withColumn
一起使用。
the final objective is to split the Vector into individual columns.
这只是一个简单的索引问题 -