我有一个pyspark代码,该代码始终给我gc开销问题。虽然可以通过提高堆限制来避免这种情况,但是我仍然想了解我的代码的哪一部分正在造成此问题。
有什么办法可以像运行cProfile那样对我的代码进行性能分析,以进行垃圾回收。具体来说,我正在查看代码中是否存在循环引用和内存泄漏。
答案 0 :(得分:2)
我建议您在执行转换时注意Spark血统。
df.explain(extended=True)
此外,您应该随着它的增长不断前进。您可以通过
df= df.checkpoint(eager=True)
检查此解决方案是否有帮助