DataFrame.cache() 和 hiveContext.cacheTable 有什么区别?
What is the difference between DataFrame.cache() and hiveContext.cacheTable?
以下片段有什么区别吗:
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
df.cache()
和
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
hiveContext.cacheTable("myTable")
没有区别。 HiveContext class extends SQLContext class (source code),因此它们共享相同的 cacheManager
。事实上,HiveContext 根本没有 cacheTable
函数(它调用 SQLContext 的 cacheTable
函数)
Edit:调用 df.cache()
转换为调用 persist
,转换为 sqlContext.cacheManager.cacheQuery(this)
,如 source code for DataFrame 中所示
而sqlContext.cacheTable
也翻译为sqlContext.cacheManager.cacheQuery
source code for SQLContext
以下片段有什么区别吗:
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
df.cache()
和
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
hiveContext.cacheTable("myTable")
没有区别。 HiveContext class extends SQLContext class (source code),因此它们共享相同的 cacheManager
。事实上,HiveContext 根本没有 cacheTable
函数(它调用 SQLContext 的 cacheTable
函数)
Edit:调用 df.cache()
转换为调用 persist
,转换为 sqlContext.cacheManager.cacheQuery(this)
,如 source code for DataFrame 中所示
而sqlContext.cacheTable
也翻译为sqlContext.cacheManager.cacheQuery
source code for SQLContext