gpt4 book ai didi

scala - row.getDouble 中的 Spark scala 参数

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

当我尝试在类里面将数据帧传输到 RDD 时,我遇到了一个非常有趣的错误。

我构建了一个名为 ROC 的类,它看起来像这样:

class ROC(lines : DataFrame, x: Int, y: Int) {

private val metrics: BinaryClassificationMetrics =
new BinaryClassificationMetrics(
lines.map(row => (row.getDouble(x), row.getDouble(y))))

}

它给我一个错误

org.apache.spark.SparkException: Task not serializable

但是当我在 getDouble() 中键入 0 和 1 而不是传递参数 x 和 y 时,一切都很好。

              lines.map(row => (row.getDouble(0), row.getDouble(1))))

虽然我已经通过在 map 之前添加 select 方法解决了这个问题,但我很好奇这是怎么发生的。有任何想法吗?非常感谢!

最佳答案

Row.getDouble(index : Int) 将行的整数索引作为输入,而 x 和 y 定义为字符串。您的代码应该在 row.getDouble(x) 处给出编译时错误,因为 x 是一个字符串。您可能正在运行一些以前编译过的代码。

关于scala - row.getDouble 中的 Spark scala 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150505/

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