此问题在此处已有答案:
Temp table caching with spark-sql(2个答案)5年前关闭。它们都是为了快速访问数据集。两者之间有什么区别?
nle07wnf1#
createOrReplaceTempView将DataFrame注册为一个表,您可以使用SQL查询(绑定到注册它的SparkSession的生命周期-因此名称中有Temp部分)。但是,请注意,此方法不允许您实现任何性能改进。cache个(或persist)将DataFrame标记为在后续操作之后要缓存,使其在后续操作中访问更快。DataFrame s,就像RDD s一样,表示在底层(分布式)数据结构(即所谓的它的 * 血统 *)。每当您执行转换时,(例如:通过map将函数应用于每个记录),您将返回一个更新的沿袭。每当您实际对DataFrame执行操作时,必须执行沿袭的某种计算,它每次都会被重新执行,除非它已经被缓存了,因此可以使用。这意味着使用cache或persist将帮助您优化需要多次访问DataFrame内容的情况。
createOrReplaceTempView
DataFrame
SparkSession
Temp
cache
persist
RDD
map
1条答案
按热度按时间nle07wnf1#
createOrReplaceTempView
将DataFrame
注册为一个表,您可以使用SQL查询(绑定到注册它的SparkSession
的生命周期-因此名称中有Temp
部分)。但是,请注意,此方法不允许您实现任何性能改进。cache
个(或persist
)将DataFrame
标记为在后续操作之后要缓存,使其在后续操作中访问更快。DataFrame
s,就像RDD
s一样,表示在底层(分布式)数据结构(即所谓的它的 * 血统 *)。每当您执行转换时,(例如:通过map
将函数应用于每个记录),您将返回一个更新的沿袭。每当您实际对DataFrame
执行操作时,必须执行沿袭的某种计算,它每次都会被重新执行,除非它已经被缓存了,因此可以使用。这意味着使用
cache
或persist
将帮助您优化需要多次访问DataFrame
内容的情况。