Time complexity Spark中数据帧操作的时间复杂度和内存占用是多少?
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
withColumn()
)扩展数据帧时,内存/磁盘占用问题的答案:(withColumn()
):(在带有自动垃圾收集的Python中)执行table=table.withColumn(…)
还是执行extended\u table=table.withColumn()
占用相同的内存更好
PS:假设两个表都是通过
persist()
持久化的,分配给同一个变量或另一个变量并没有什么区别。Spark仅使用这些分配从指定的操作构建沿袭图。当您调用实际的Spark操作时,将执行沿袭图中的操作
只有通过
.cache()
或.persist()
缓存中间结果时,才需要额外的内存。因此,我的问题更为精确:如果在withColumn()的情况下,缓存原始表
和扩展版本扩展表
,会发生什么:我们是否有表
的副本,或者仅仅是一个聪明的存储器,它知道扩展的_table
只是table
加上一列withColumn()
只调用著名的select()
,它的基本形式总是对列集合进行操作,甚至没有整个表的概念。这强烈表明生成的数据帧是您的智能存储。如果您仍有疑问,可以通过查看数据帧的。