У меня очень большой Spark DataFrame с несколькими столбцами, и я хочу сделать обоснованное суждение о том, сохранять или нет их в моем конвейере, отчасти исходя из того, насколько они велики.Под «насколько большим» я подразумеваю размер в байтах в оперативной памяти, когда этот DataFrame кэшируется, что, я думаю, будет достойной оценкой вычислительных затрат на обработку этих данных.Некоторые столбцы являются простыми типами (например, double, integer), но другие являются сложными типами (например, массивы и карты переменной длины).
Подход, который я пробовал, заключается в кэшировании DataFrame без, а затем с соответствующим столбцом, откройте вкладку «Хранилище» в интерфейсе Spark и возьмите разницу.Но это раздражающее и медленное упражнение для DataFrame с большим количеством столбцов.
Обычно я использую PySpark, поэтому предпочтительным является ответ PySpark, но Scala также подойдет.