我正在使用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)