Performance 在SPARK中,当数据帧只被使用一次时,缓存数据帧有什么帮助

Performance 在SPARK中,当数据帧只被使用一次时,缓存数据帧有什么帮助,performance,dataframe,apache-spark,apache-spark-sql,apache-spark-dataset,Performance,Dataframe,Apache Spark,Apache Spark Sql,Apache Spark Dataset,我知道,如果同一个数据帧在多个地方使用,那么缓存一个数据帧会有很大的帮助 最近我在SPARK中对代码进行了更改,当我将缓存添加到只使用一次的数据帧时,我发现性能有所提高。如果数据帧只被使用一次,那么对数据帧调用cache()有什么帮助。即,程序在该数据帧上只有一个操作。这有什么帮助 。。。 val tableDataDF=spark.sql(查询) tableDataDF.cache()//添加此行可以提高很多性能(小时减少到分钟) tableDataDf.write.mode(“append”

我知道,如果同一个数据帧在多个地方使用,那么缓存一个数据帧会有很大的帮助

最近我在SPARK中对代码进行了更改,当我将缓存添加到只使用一次的数据帧时,我发现性能有所提高。如果数据帧只被使用一次,那么对数据帧调用
cache()
有什么帮助。即,程序在该数据帧上只有一个操作。这有什么帮助

。。。
val tableDataDF=spark.sql(查询)
tableDataDF.cache()//添加此行可以提高很多性能(小时减少到分钟)
tableDataDf.write.mode(“append”).jdbc(url、表格、道具)
...

上面的数据框保存了大约10-15L的记录。

你好,Mintu,你应该阅读这篇关于如何提问的文章。例如,为人们提供所需的最少代码,以便他们能够理解您正在做什么,并在需要时复制它。嗨@Oli,我已经更新了这个问题。我正在尝试将数据帧保存到数据库。添加了代码段。ThanksI imagine
cache()
强制在写入之前将内存中的所有表数据具体化,并在单个批中写入。如果没有它,每一行都会及时计算以供写入,并且一次添加一行。不过,这只是一个猜测。