Spark ML常见异常【Vector】

    技术2023-06-20  86

    一.常见分析

    在Spark 机器学习中,Vector向量和Metricx矩阵是最常用的两种数据类型。特别是Vector向量类型,在使用Vector向量类型时,默认是不会导入Spark定义的Vector类型的。默认使用scala.collection.immutable.Vector,此时使用Spark ml算法就会报类型异常。 代码:

    val (meanVal, varianceVal) = df.select(metrics("mean", "variance").summary($"features", $"weight").as("summary")) .select("summary.mean", "summary.variance") .as[(Vector, Vector)] .first()

    异常信息:

    Error:(31, 9) constructor cannot be instantiated to expected type; found : (T1, T2) required: (Vector, Vector) val (meanVal, varianceVal) = df.select(metrics("mean", "variance").summary($"features", $"weight").as("summary")) ^

    二.解决方案

    导入对应的spark包Vector向量即可。

    使用ml算法

    import org.apache.spark.ml.linalg.Vector

    使用mllib算法

    import org.apache.spark.mllib.linalg.Vector
    Processed: 0.011, SQL: 9