Spark DataFrame函数到熊猫返回OutOfMemoryError

时间:2018-09-19 12:11:39

标签: pandas apache-spark jupyter-notebook

我的HDFS中有一个很大的csv文件。我正在从HDFS中读取内容,并导入到熊猫(在我的Jupyter笔记本中),使用以下代码进行进一步处理:

spark_session = SparkSession.builder\
     .master(master)\
     .appName(app_name)\
     .getOrCreate()

sdf = spark_session.read.csv(file_name, sep='\t', header=True, schema=df_schema)

pdf = sdf.toPandas() # Throwing exception

这将引发以下异常:

Py4JJavaError: An error occurred while calling o46.collectToPython.
: java.lang.OutOfMemoryError: Java heap space
    at org.apache.spark.sql.execution.SparkPlan$$anon$1.next(SparkPlan.scala:261)
    at org.apache.spark.sql.execution.SparkPlan$$anon$1.next(SparkPlan.scala:257)
    at scala.collection.Iterator$class.foreach(Iterator.scala:893)
    ...

我有24g的spark.driver.memory和spark.executor.memory和0.2的spark.storage.memoryFraction

以下是内存不足异常是由于spark集群或本地系统中的内存不足吗?

我的一位同事能够在他的12g内存系统中执行上述代码,而我的24g RAM却出现异常。您能帮我解决这个错误吗?

0 个答案:

没有答案