scala - 找到 : org. apache.spark.sql.Dataset[(Double, Double)] 需要 : org. apache.spark.rdd.RDD[(Double, Double)]

标签 scala apache-spark apache-spark-sql rdd

我收到以下错误

 found   : org.apache.spark.sql.Dataset[(Double, Double)]
 required: org.apache.spark.rdd.RDD[(Double, Double)]
    val testMetrics = new BinaryClassificationMetrics(testScoreAndLabel)

在以下代码上:

val testScoreAndLabel = testResults.
    select("Label","ModelProbability").
    map{ case Row(l:Double,p:Vector) => (p(1),l) }
val testMetrics = new BinaryClassificationMetrics(testScoreAndLabel)

从错误看来,testScoreAndLabel 的类型为sql.Dataset,但BinaryClassificationMetrics 需要一个RDD

如何将 sql.Dataset 转换为 RDD

最佳答案

我会做这样的事情

val testScoreAndLabel = testResults.
    select("Label","ModelProbability").
    map{ case Row(l:Double,p:Vector) => (p(1),l) }

现在转换testScoreAndLabel只需执行 testScoreAndLabel.rdd 即可实现 RDD

val testMetrics = new BinaryClassificationMetrics(testScoreAndLabel.rdd)

API Doc

关于scala - 找到 : org. apache.spark.sql.Dataset[(Double, Double)] 需要 : org. apache.spark.rdd.RDD[(Double, Double)],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40577904/

相关文章:

Scala 集合库继承

python发送csv数据到spark streaming

apache-spark - Spark 如何在 Hadoop YARN 上准备执行器?

scala - Spark 列因式分解

apache-spark - Pyspark:在数据框中用 null 替换所有出现的值

java - lambda 反序列化 - lambda 表达式是否总是脱糖为 Scala 的静态方法?

scala - 案例类扩展特征不适用于副本

scala - 如何在 Scala 中跟踪函数评估?

scala - 从 Apache Spark 访问公共(public)可用的 Amazon S3 文件

java - 在不使用数据 block API 的情况下将数据框保存为文本文件