我正在使用Spark 1.4进行研究,并在内存设置方面苦苦挣扎。我的机器有16GB的内存,所以那里没有问题,因为我的文件大小只有300MB。虽然,当我尝试使用toPandas()函数将Spark RDD转换为 Pandas 数据帧时,出现以下错误:

serialized results of 9 tasks (1096.9 MB) is bigger than spark.driver.maxResultSize (1024.0 MB)

我试图解决此问题,更改了spark-config文件,但仍然遇到相同的错误。我听说这是spark 1.4的问题,想知道您是否知道如何解决此问题。任何帮助深表感谢。

最佳答案

您可以在spark.driver.maxResultSize对象中设置SparkConf参数:

from pyspark import SparkConf, SparkContext

# In Jupyter you have to stop the current context first
sc.stop()

# Create new config
conf = (SparkConf()
    .set("spark.driver.maxResultSize", "2g"))

# Create new context
sc = SparkContext(conf=conf)

您可能还应该创建一个新的SQLContext:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

10-06 10:33