Scala spark中嵌套数据帧的空指针异常/无效树

Scala spark中嵌套数据帧的空指针异常/无效树,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我使用Sparksql创建了一个数据帧,如下所示: val pastAsset = data.filter(data("assetId") === asset.get(0).toString) 我知道此查询至少返回1行。但是,当我尝试在foreach语句中引用pastAsset值时 pastAsset.filter(data("timestamp") === timeToCompare). foreach{ row => println(s"WORKING

我使用Sparksql创建了一个数据帧,如下所示:

val pastAsset = data.filter(data("assetId") === asset.get(0).toString)
我知道此查询至少返回1行。但是,当我尝试在foreach语句中引用pastAsset值时

pastAsset.filter(data("timestamp") === timeToCompare).
      foreach{ row =>
          println(s"WORKING ON ROW $row ")
        println(s"PAST ASSETS : ${pastAsset}")
    }
如果我对pastAsset值进行计数(),并且如果我打印出pastAsset值,我会得到一个NPE:

PAST ASSETS : Invalid tree; null:
null
我尝试了缓存pastAsset值和持久化它,但仍然遇到同样的问题。你知道为什么会发生这种情况,以及我该如何应对吗


谢谢

您的代码非常复杂,因此,如果您可以制作一个最小的运行示例(例如使用
sc.parallelize(…)
),让我们清楚地了解您想要实现的目标。
pastAsset.filter(数据(“时间戳”)
pastAsset.filter(pastAsset(“时间戳”)
?你想干什么?如果是前者,则spark RDD是不可变的,不支持嵌套操作。我想这就是为什么你会得到NPE