0

我有一个数据框var cache :DataFrame = _。作为我给出的初始运行cache = existingDF,现有的df是使用crealytics.spark.excel从excel中读取的。但在随后的运行中,existingDF 会得到另一个更新的 excel 文件,应该是cache = cache.union(existingDF) 但是我似乎只在缓存中得到了existingDF。简而言之,每当我调用缓存时,它似乎都会读取 excel。我该如何避免这种情况?将其读取为 csv 时不存在此问题。(当我.persist在 csv 读取时使用它时它就在那里,但当我删除 .persist 时得到修复更简单:

var a = _
while(true){
    val b = spark.read.format("com.crealytics.spark.excel")...
    if (Option(a).isEmpty){
      a = b
    }
    else if a!=b
      a = b.union(a)
}

变量 a 总是与 b 一起更新,因此它永远不会与 b 不同。我该如何避免这种情况?

4

0 回答 0