开发者社区> 问答> 正文

Spark数据集<Row>向量列到数组类型转换

我有一个列“功能”,它是一个矢量。有没有办法将此Vector列转换为Array列?我正在使用Spark 2.3和Java。实际上,最终目标是将Vector拆分为单独的列。

展开
收起
社区小助手 2018-12-12 14:07:41 6064 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    这可以用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。

    2019-07-17 23:20:10
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载