Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何解决SPARK-5063问题;这个RDD缺少一个SparkContext;?_Scala_Apache Spark - Fatal编程技术网

Scala 如何解决SPARK-5063问题;这个RDD缺少一个SparkContext;?

Scala 如何解决SPARK-5063问题;这个RDD缺少一个SparkContext;?,scala,apache-spark,Scala,Apache Spark,我使用的是Scala 2.12.7和Spark 2.4.3,我有一个算法可以使用RDD[(List[Double],String)] 其中modelKnn是一个RDD[(列表[Double],字符串)] 然而,这种方法给了我一个错误“这个RDD缺少SparkContext”,据我所知,它与嵌套的RDD操作有关 有没有办法避免这个问题,并且仍然能够进行并行计算 如果我使用testVector.collect().toList在列表中转换testVector,我不再有同样的问题,但这也意味着放弃并行

我使用的是Scala 2.12.7和Spark 2.4.3,我有一个算法可以使用
RDD[(List[Double],String)]

其中
modelKnn
是一个
RDD[(列表[Double],字符串)]

然而,这种方法给了我一个错误“这个RDD缺少SparkContext”,据我所知,它与嵌套的RDD操作有关

有没有办法避免这个问题,并且仍然能够进行并行计算


如果我使用
testVector.collect().toList
在列表中转换
testVector
,我不再有同样的问题,但这也意味着放弃并行分类每个点的可能性。

可能是因为您正在执行操作
.first()。\u 1
内部转换
testVector.map
,检查:通过删除您提到的内容,我仍然得到“MapPartitionsRDD:Spark不支持嵌套RDD(请参阅Spark-5063)”
def classifyPoint(point: List[Double], data: RDD[(List[Double], String)], k: Int): String =
  {
    val sortedDistances = data.map{case (a, b) => (b, Util.euclideanDistance(point, a))}.sortBy(_._2, ascending = true)

    val topk = sortedDistances.zipWithIndex().filter(_._2 < k)

    val result = topk.map(_._1).map(entry => (entry._1, 1)).reduceByKey(_+_).sortBy(_._2, ascending = false).first()._1

    //for debugging purposes, remember to remove
    println(s"Point classified as ${result}")

    result
  }
val classificationKnn = testVector.map(knnSpark.classifyPoint(_, modelKnn, k))