首页 > 解决方案 > 来自大型 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

标签: pythonapache-sparkpyspark

解决方案


推荐阅读