Загруженный файл отображается как RDD. RDD представляет собой комбинацию фрагментов, так называемых разделов, которые находятся внутри кластера. Чтение файла не является проблемой, но после преобразования он может вызывать исключение OOM в зависимости от ограничений памяти исполнителя. Потому что могут быть некоторые операции тасования, которые потребуют переноса разделов в одно место. По умолчанию память исполнителя установлена равной 512 МБ. Но для обработки большого объема данных пользовательский параметр памяти. Spark резервирует части этой памяти для хранения данных в кэше и для временных данных перемешивания. Задайте кучу для них параметрами spark.storage.memoryFraction (значение по умолчанию 0.6) и spark.shuffle.memoryFraction (значение по умолчанию 0.2). Поскольку эти части кучи могут расти до того, как Spark может измерить и ограничить их, необходимо установить два дополнительных параметра безопасности: spark.storage.safetyFraction (по умолчанию 0,9) и spark.shuffle.safetyFraction (по умолчанию 0,8). Параметры безопасности уменьшают долю памяти на указанную величину. Фактическая часть кучи, используемой для хранения по умолчанию, составляет 0,6 × 0,9 (доля безопасности умножается на долю памяти), что составляет 54%. Аналогично, часть кучи, используемой для данных тасования, составляет 0,2 × 0,8 (показатель безопасности, умноженный на долю памяти в случайном порядке), что составляет 16%. Затем у вас есть 30% кучи, зарезервированных для других объектов и ресурсов Java, необходимых для запуска задач. Вы должны, однако, рассчитывать только на 20%.
Вы используете HDFS как FS? – FaigB
Я использую HDFS .. – Aru