如何将从excel读取的数据帧传递给spark scala中的另一个变量?
我有一个dataframe如何将从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读取时不存在此问题。(
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循环)