我的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却出现异常。您能帮我解决这个错误吗?