它们两者都是为了快速访问数据集。两者有什么区别?
答案 0 :(得分:3)
createOrReplaceTempView
将一个DataFrame
注册为一个表,您可以使用SQL查询该表(绑定到注册它的SparkSession
的生命周期-因此,名称)。但是请注意,此方法不能使您获得任何性能改进。
Temp
(或cache
)将persist
标记为要在以下操作之后进行缓存,从而使其在后续操作中可以更快地访问。 DataFrame
与DataFrame
一样,代表对基础(分布式)数据结构(称为其 lineage )执行的计算顺序。每当您执行转换时(例如:通过RDD
将功能应用于每个记录),都将返回更新的沿袭。每当您对map
实际执行某项操作时,必须执行某种沿袭的计算,除非每次都已对其进行缓存且因此可用,否则每次都会重新执行该计算。
这意味着使用DataFrame
或cache
可以帮助您优化需要多次访问persist
内容的情况。