python - 来自大型 python 对象的 dataFrame 数据
问题描述
如果我们从 [dict or list] 之类的 python 对象创建 dataFrame,即使 python 数据应该由 GC 收集,但只要 dataFrame 是惰性的,它就需要保留数据源。所以每个 python 对象都保存在解释器的内存中。如果这样的对象真的很大,它可能会导致 spark 执行崩溃,因为 python 解释器无法获得足够的内存。我对吗?
def get_df():
# d should be collected by GC after leaving body of function
d = {'a': 1}
df = spark.createDataFrame(d)
return df
df = get_df()
# d still in memory of interpreter
解决方案
推荐阅读
- python - 表中的flatbuffers嵌套向量不起作用
- javascript - 如何在严格模式下修复表单输入和 vuex 的双向绑定
- mql4 - 如何使用 iOpen()、iClose()、iLow() 和 iHigh() 来查找这些 pinbar?
- scheme - 为什么当我尝试标记化时,Racket 的吹牛给我一个解析错误?
- python - Spark - 地图功能是否可用于 Dataframe 或仅适用于 RDD?
- c++ - 如何禁用 Xcode C++ 编译器扩展?
- xpath - Google 表格中的 XPath 生成 #N/A
- python-3.x - TypeError: '<' in put items into priority queue
- xcode - Xcode 11 不会打开新的编辑器窗格
- html - 如何隐藏 Angular 中其他页面的登录和注册链接