Time complexity Spark中数据帧操作的时间复杂度和内存占用是多少?

Time complexity Spark中数据帧操作的时间复杂度和内存占用是多少?,time-complexity,apache-spark-sql,space-complexity,memory-consumption,Time Complexity,Apache Spark Sql,Space Complexity,Memory Consumption,Spark中数据帧操作的算法复杂性和/或内存消耗是多少?我在文档中找不到任何信息 一个有用的例子是,当使用另一列(withColumn())扩展数据帧时,内存/磁盘占用问题的答案:(withColumn()):(在带有自动垃圾收集的Python中)执行table=table.withColumn(…)还是执行extended\u table=table.withColumn()占用相同的内存更好 PS:假设两个表都是通过persist()持久化的,分配给同一个变量或另一个变量并没有什么区别。Sp

Spark中数据帧操作的算法复杂性和/或内存消耗是多少?我在文档中找不到任何信息

一个有用的例子是,当使用另一列(
withColumn()
)扩展数据帧时,内存/磁盘占用问题的答案:(
withColumn()
):(在带有自动垃圾收集的Python中)执行
table=table.withColumn(…)
还是执行
extended\u table=table.withColumn()
占用相同的内存更好


PS:假设两个表都是通过
persist()
持久化的,分配给同一个变量或另一个变量并没有什么区别。Spark仅使用这些分配从指定的操作构建沿袭图。当您调用实际的Spark操作时,将执行沿袭图中的操作


只有通过
.cache()
.persist()
缓存中间结果时,才需要额外的内存。因此,我的问题更为精确:如果在
withColumn()的情况下,缓存原始
和扩展版本
扩展表
,会发生什么:我们是否有
的副本,或者仅仅是一个聪明的存储器,它知道扩展的_table
只是
table
加上一列
withColumn()
只调用著名的
select()
,它的基本形式总是对列集合进行操作,甚至没有整个表的概念。这强烈表明生成的数据帧是您的智能存储。如果您仍有疑问,可以通过查看数据帧的。