首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pypsark的内存管理。我们是否应该努力编写尽可能少传递到python函数的代码?

pypsark的内存管理。我们是否应该努力编写尽可能少传递到python函数的代码?
EN

Stack Overflow用户
提问于 2022-01-13 15:23:43
回答 1查看 66关注 0票数 0

我认为在pyspark中,python代码运行在python进程中,这些进程不使用pyspark创建的JVM的内存堆。所以,

如果我使用pyspark提供的函数,我处理的是JVM内存堆( spark.executor.memory)

  • If和spark.driver.memory,我使用python本机函数),那么我处理python进程内存堆(spark.driver.memoryOverheadspark.executor.memoryOverhead)

  • If,我有一个DataFrame,由python函数和pyspark函数操作,那么它应该适合于python进程内存堆和JVM内存堆

)。

这是否意味着,如果我有一个同时通过python和pyspark方法的数据,那么我应该在spark.driver/executor.memoryspark.driver/executor.overOverhead之间分配几乎相同的可用内存,因为它们都必须容纳数据?memoryOverhead的缺省值是executor/driverMemory * 0.10, with minimum of 384,如果我最后使用python函数的话,这个值看起来很低。我们应该尽量避免使用python函数,因为这会使我的内存容量增加一倍,因为我可以将其全部分配给spark.driver/executor.memory

EN

回答 1

Stack Overflow用户

发布于 2022-01-14 12:03:22

我肯定会答应的!

除了内存问题之外,当对象必须在JVM和python进程之间传递时,性能也会出现巨大损失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70699010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档