以下代码段之间有什么区别吗:
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
df.cache()
和
val df = hiveContext.createDataFrame(rows, schema)
df.registerTempTable("myTable")
hiveContext.cacheTable("myTable")
没有区别。HiveContext类扩展了SQLContext类(源代码),因此它们共享相同的cacheManager
。事实上,HiveContext根本没有cacheTable
函数(它调用SQLContext的cacheTable
函数)
编辑:调用df.cache()
转换为调用persist
,转换为sqlContext.cacheManager.cacheQuery(this)
,如DataFrame 的源代码所示
而sqlContext.cacheTable
也翻译为SQLContext 的sqlContext.cacheManager.cacheQuery
源代码