返回信息流我为了尽可能小的占Spark的内存,每一列不用了,都立刻写一个drop把它drop掉。我们组的人建议我最后drop掉所有不用的列,代码更整齐一些。我不知道这两种情况的内存是不是等效:
df.drop("a").withColumn("b", size($"c")).drop("c")
和
df..withColumn("b", size($"c")).drop("a","c")
内存等效吗?
是不是第一种情况比第二种情况更省内存?
这是一条镜像帖。来源:北邮人论坛 / database / #11420同步于 2020/4/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
Spark SQL的withColumn和drop的顺序会影响内存使用吗
PMS
2020/4/1镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
没怎么用过DataFrame,不清楚 drop 会不会触发 RDD 底层的action操作。
从RDD的角度来讲,如果没有action 操作,无论多少个过滤,最后都是同一个stage,在同一个task里执行完了所有过滤操作,因此读进来的数据占用的内存是没啥差别的