Функция Spark DataFrame toPandas, возвращающая OutOfMemoryError - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть большой CSV-файл в моей HDFS.Я читаю из HDFS и импортирую в pandas (в моем ноутбуке 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)
    ...

У меня естьmy spark.driver.memory и spark.executor.memory на 24g и spark.storage.memoryFraction на 0,2

Исключение из-за нехватки памяти из-за недостатка памяти в спарк-кластере или в моей локальной системе ниже?

Мой коллега может выполнить вышеуказанный код в своей 12-граммовой системе, в то время как я получаю исключение с моей 24-граммовой оперативной памятью.Не могли бы вы помочь мне решить эту ошибку?

...