gpt4 book ai didi

java - 将数据集 预测中的 vector 数据类型 "probability"列转换为数组?

转载 作者:行者123 更新时间:2023-12-02 02:34:24 25 4
gpt4 key购买 nike

我有一个数据集如下:

 Dataset<Row> result =   result.select("Probability","label","prediction");

概率的数据类型是Vector,我想将其转换为Array,以便将数据集保存到数据库中。谢谢!

最佳答案

我遇到了类似的问题,我解决了编写自定义 UDF 的问题,该 UDF 从 Vector 中提取元素并将其作为 double 值返回:

static UDF2<Vector, Integer, Double> probability_at = (UDF2<Vector, Integer, Double>) Vector::apply;

要使用 UDF,您首先需要在 SparkSession 中注册它:

spark.udf().register("probability_at", probability_at, DoubleType);

你可以使用它:

Dataset<Row> result = df.select(col("label"), col("prediction"), expr("probability_at(Probability, 1)").as("probability_1"));

此时,result DataFrame 中有一个新列 probability_1,其中包含概率 vector 位置 1 中的元素( double 值)。

如果您需要从 Vector 中提取多个项目,则可以多次调用该函数,或者您可以创建一个类似的 UDF 来循环整个 Vector 并返回一个 double 数组。

关于java - 将数据集 <row> 预测中的 vector 数据类型 "probability"列转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57213524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com