以下代码段之间是否有任何区别:
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
df.cache()
和
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
hiveContext.cacheTable("myTable")
答案 0 :(得分:2)
没有区别。 HiveContext类extends SQLContext class (source code),因此它们共享相同的cacheManager
。事实上,HiveContext根本没有cacheTable
函数(它调用SQLContext' s cacheTable
函数)
修改:调用df.cache()
转换为persist
,其转换为sqlContext.cacheManager.cacheQuery(this)
,如source code for DataFrame
虽然sqlContext.cacheTable
也会翻译为sqlContext.cacheManager.cacheQuery
source code for SQLContext