org.apache.spark.sql.AnalysisException:无法从概率中提取值

时间:2017-04-20 06:50:21

标签: scala apache-spark dataframe machine-learning naivebayes

我使用Naive Bayes算法对文章进行分类,并希望访问部分结果的“概率”列:

Animated.Value

在最后一行,打破

val Array(trainingDF, testDF) = rawDataDF.randomSplit(Array(0.6, 0.4))
    val ppline = MyUtil.createTrainPpline(rawDataDF)
    val model = ppline.fit(trainingDF)
    val testRes = model.transform(testDF)
    testRes.filter($"probability"(0).as[Double] === 1).show()

2 个答案:

答案 0 :(得分:2)

您始终可以获取基础RDD并过滤:

val filteredRes = results.rdd.filter(row => row.getAs[Vector]("probability")(0) == 1)

如果您需要,可以将其转换回dataframe

val df = spark.createDataFrame(filteredRes, results.schema)

答案 1 :(得分:1)

请注意,有几个问题已经打开以跟踪此问题:

https://issues.apache.org/jira/browse/SPARK-19653

https://issues.apache.org/jira/browse/SPARK-12806

目前,Vector不是一流的公民"在Spark SQL API中