Для rdd уровень хранения по умолчанию для постоянного файла API - MEMORY, а для набора данных - MEMORY_AND_DISK
Пожалуйста, проверьте ниже
[SPARK-3824] [SQL] Устанавливает уровень хранения таблицы в памяти по умолчанию в MEMORY_AND_DISK
Как упомянуто @ user6910411 " Spark SQL в настоящее время использует формат MEMORY_ONLY в качестве формата по умолчанию. Однако из-за использования буферов столбцов существует огромная стоимость необходимости пересчитывать блоки, намного больше, чем ядро Spark.", т.е. набор данных / dataframe apis использует буферы столбцов для хранения типа данных столбца и сведений о столбцах о необработанных данных, поэтому в случае, если при кэшировании данные не помещаются в память, они не будут кэшироваться для остальной части раздела и будут пересчитываться всякий раз, когда Так что в случае набора данных / фрейма данных стоимость повторного вычисления больше по сравнению с rdd из-за его столбчатой структуры. Поэтому опция сохранения по умолчанию была изменена на MEMORY_AND_DISK, так что блоки, которые не помещаются в память, будут проливаться на диск, и это будет извлекается с диска при необходимости, а не при повторном вычислении в следующий раз.