Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
如何将从excel读取的数据帧传递给spark scala中的另一个变量?_Scala_Dataframe_Apache Spark_Spark Excel - Fatal编程技术网

如何将从excel读取的数据帧传递给spark scala中的另一个变量?

如何将从excel读取的数据帧传递给spark scala中的另一个变量?,scala,dataframe,apache-spark,spark-excel,Scala,Dataframe,Apache Spark,Spark Excel,我有一个dataframevar缓存:dataframe=.。作为我给出的初始运行,cache=existingDF,使用crealytics.spark.excel从excel读取existingDF。 但是在随后的运行中,existingDF将获得另一个更新的excel文件,它应该是cache=cache.union(existingDF) 但我似乎只在缓存中获取了现有的df。简而言之,每当我调用cache时,它似乎都在读取excel。我如何避免这种情况?将其作为csv读取时不存在此问题。(

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

请发布可运行的代码,目前为止,问题还不清楚(尤其是标题)正如@RaphaelRoth所说,您的问题没有足够的信息让我们来帮助您。希望此编辑帮助是您遍历文件列表吗?我仍然不清楚您在做什么,如果您澄清,我将发布一个功能性答案(您几乎肯定不应该使用var或while循环)