Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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 foreach循环内的Spark NullPointerException_Scala_Foreach_Nullpointerexception_Apache Spark_Rdd - Fatal编程技术网

Scala foreach循环内的Spark NullPointerException

Scala foreach循环内的Spark NullPointerException,scala,foreach,nullpointerexception,apache-spark,rdd,Scala,Foreach,Nullpointerexception,Apache Spark,Rdd,我有RDD,我想循环一下。我喜欢这样: pointsMap.foreach({ p => val pointsWithCoordinatesWithDistance = pointsMap.leftOuterJoin(xCoordinatesWithDistance) pointsWithCoordinatesWithDistance.foreach(println) println("---") }) 但是,NullPointerException正在发生: java.la

我有RDD,我想循环一下。我喜欢这样:

pointsMap.foreach({ p =>
  val pointsWithCoordinatesWithDistance = pointsMap.leftOuterJoin(xCoordinatesWithDistance)
  pointsWithCoordinatesWithDistance.foreach(println)
  println("---")
})
但是,NullPointerException正在发生:

java.lang.NullPointerException
    at org.apache.spark.rdd.RDD.<init>(RDD.scala:125)
    at org.apache.spark.rdd.CoGroupedRDD.<init>(CoGroupedRDD.scala:69)
    at org.apache.spark.rdd.PairRDDFunctions.cogroup(PairRDDFunctions.scala:651)
    at org.apache.spark.rdd.PairRDDFunctions.leftOuterJoin(PairRDDFunctions.scala:483)
    at org.apache.spark.rdd.PairRDDFunctions.leftOuterJoin(PairRDDFunctions.scala:555)
...
java.lang.NullPointerException
位于org.apache.spark.rdd.rdd.(rdd.scala:125)
位于org.apache.spark.rdd.CoGroupedRDD.(CoGroupedRDD.scala:69)
位于org.apache.spark.rdd.pairddfunctions.cogroup(pairddfunctions.scala:651)
位于org.apache.spark.rdd.pairddfunctions.leftOuterJoin(pairddfunctions.scala:483)
位于org.apache.spark.rdd.pairddfunctions.leftOuterJoin(pairddfunctions.scala:555)
...

pointsMap
xCoordinationwithDistance
都在foreach之前初始化,并包含元素。不在foreach循环内
leftOuterJoin
也可以工作。有关我的代码的完整版本,请参见不要在某个RDD运算符的函数中使用RDD。当您想同时操作多个RDD时,需要使用适当的RDD运算符,例如
join

,因此,我不能在其他RDD函数(如foreah)中使用RDD函数(如join)?如果是,那么我如何重写代码?另外,你所说的“适当的RDD运算符”是什么意思?你不应该在RDD函数中使用RDD。我不明白为什么您需要将
点map.leftOuterJoin(xcoordinationswithdistance)
放在
foreach
中?您可以编写完整的代码以便我理解您的意图吗?我只在
foreach
中看到了
println
,这让我很困惑。我对
DBSCAN
一无所知。但是如果您确实需要
foreach
循环,可以使用
pointsMap.collect().foreach
。确保您有足够的内存在驱动程序中存储
点map