我不知道为什么我的工作都在慢慢地运行,因为我的记忆并不是很好。在
当我进入spark UI并单击“Executors”时,我看到使用了以下内存:
我想知道为什么“已用”内存与“总内存”相比如此之小。怎样才能尽可能多地使用内存?在
其他信息:
我有一个小的广播表,但它只有1MB的大小。它应该为每个执行器复制一次,所以我不认为它会对这个有那么大的影响。
我正在使用由纱线管理的spark
配置设置为:
spark.executor.memory=45g
spark.executor.cores=2
spark.executor.instances=4
spark.sql.broadcastTimeout = 9000
spark.memory.fraction = 0.6
我正在处理的数据集有8397行,80个分区。除了最初重新分区到80个分区之外,我不执行任何shuffle操作。
当我添加列时,这会变得很慢。之前的所有部分似乎都相当快,当我尝试使用自定义udf(使用withColumn
)添加列时,该部分的速度似乎有所放缓。在
这里有一个类似的问题: How can I tell if my spark job is progressing?但我的问题更为尖锐——为什么“内存使用量”显示的数字如此之低?在
谢谢。在
目前没有回答
相关问题 更多 >
编程相关推荐