Я понимаю, что если один и тот же фрейм данных используется в нескольких местах, то кэширование фрейма данных очень поможет.
С моим недавним изменением кода в SPARK Когда я добавил кеш в фрейм данных, который используется только один раз, я обнаружил, что производительность повысилась. Чем полезен вызов cache()
на фрейме данных, если фрейм данных используется только один раз . Т.е. у программы есть только одно действие на этом фрейме данных. Как это поможет?
...
val tableDataDF = spark.sql(query)
tableDataDF.cache() // adding this line improves lot of performance (hours gets reduced to min)
tableDataDf.write.mode("append").jdbc(url, table, prop)
...
Приведенный выше кадр данных содержит около 10-15 л записей.