我想将我的spark DataFrame转换为字典列表。new_df = list(map(lambda row: row.asDict(), df_base.collect()))
但是当我运行上面的程序时,我不断地得到以下错误。
org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialized results of 5 tasks (4.3 GiB) is bigger than spark.driver.maxResultSize 4.0 GiB.
我该如何解决这个问题?有可能做我想做的事吗?
简单的答案是使用df_base.toLocalIterator()
而不是collect((。但您真的需要将超过4GB的数据加载到本地python列表中吗?您是考虑df_base.toPandas((还是使用spark来运行所有代码。
new_df = list(map(lambda row: row.asDict(), df_base.toLocalIterator()))