У меня есть общая работа Spark 2.3, которая выполняет множество преобразований и объединений и производит огромный даг. Это оказывает большое влияние на водителя, поскольку dag становится очень сложным.
Чтобы ослабить давление на драйвер, я хотя и занимался контрольными точками некоторых промежуточных фреймов данных, чтобы вырезать даг, но я заметил, что dataframe.checkpoint использует внизу rdds и тратит много времени на сериализацию и десериализацию фрейма данных.
Согласно этому Spark: эффективность контрольной точки фрейма данных по сравнению с явным запись на диск и мой опыт: запись фрейма данных как паркет и чтение его обратно быстрее, чем контрольная точка, но у этого есть недостаток. Dataframe теряет разделитель.
Есть ли способ записать и прочитать фрейм данных и сохранить разделитель? Я использовал ведра при записи фрейма данных, так что когда фрейм данных считывается обратно, он знает разделение данных. Проблема в том, как я могу узнать столбцы, которые фрейм данных имеет в качестве разделителя? Работа Spark, которую я выполняю, носит общий характер, поэтому я не могу жестко запрограммировать столбцы
Спасибо