在运行pyspark工作时,随着输入的增长,我注意到我一直在收到内存错误,如下所示......
ERROR cluster.YarnScheduler: Lost executor 12 on compute-2-10.local:
Container killed by YARN for exceeding memory limits. 1.5 GB of 1.5 GB
physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.
虽然即使在执行过程中重复出现错误,它也会在较小的输入上成功完成,但最终会随着输入大小的增加而消失。
我有~20,000,000,000行,我需要从中过滤掉~661,000行。考虑到密钥的格式,除了使用减法之外,我无法想到任何其他处理方法。
答案 0 :(得分:1)
执行程序内存的1.5GB非常低:通常尝试至少提供两倍的数量。仅仅通过不使资源的执行者挨饿就可以解决这个问题。
答案 1 :(得分:1)
我使用至少4GB的内存。您可以这样设置: pyspark --num-executors 5 --driver-memory 2g --executor-memory 4g