是否强制要求对火花数据帧采取行动?

时间:2016-08-29 06:19:42

标签: scala apache-spark spark-dataframe

我有以下代码片段,工作正常。

所以这里是代码中的2个动作。 updateDF.first()mergedDF.save() updateDF.count()这是一个虚拟动作,如果我删除它的工作失败了。是否有必要在代码中强制执行此类操作。我感觉如果我删除updateDF.count(),它会首先在mergedDF.save()上遇到操作。当它计算mergedDF.save()时,它会创建更多的中间数据帧,从而导致作业失败。您能否建议更改代码以使其更好。

newDataDF.persist()
val historyDataDF=hiveContext.read.format("orc").load(stagingFullPath).persist()

val updateDF = historyDataDF.coalesce(5).join(newDataDF, jobPrimaryKey).select(historyDataDF.columns.map(historyDataDF(_)): _*).persist()

println(updateDF.count())

val unchangedDF = historyDataDF.except(updateDF).persist()

val mergedDF = unchangedDF.unionAll(newDataDF).persist()
mergedDF.write.format("orc").mode(org.apache.spark.sql.SaveMode.Overwrite).save(stagingFullPath)

0 个答案:

没有答案