Som*_*haa 5 apache-spark apache-spark-sql pyspark
我需要了解使用 Spark sql 时以下两种缓存方法之间是否有任何区别,以及一种方法相对于另一种方法是否有任何性能优势(考虑到构建数据帧成本高昂,我想多次重用它/执行多次操作) )?
1> 缓存原始数据帧,然后将其注册为临时表
df.cache()
df.createOrReplaceTempView("dummy_table")
2> 将dataframe注册为临时表并缓存该表
df.createOrReplaceTempView("dummy_table")
sqlContext.cacheTable(“虚拟表”)
提前致谢。
df.cache()是惰性缓存,这意味着只有在触发下一个操作时才会发生缓存。
sqlContext.cacheTable("dummy_table")是一个急切的缓存,这意味着该表将在调用命令时被缓存。与此等效的是:spark.sql("CACHE TABLE dummy_table")
要回答您的问题是否比另一种具有性能优势,如果不了解您的整个工作流程以及如何(以及在何处)使用缓存的数据帧,将很难判断。我建议使用急切缓存,这样您就不必再次猜测数据帧何时(以及是否)被缓存。
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |