Обычно разбиение - это хорошая идея, и, как уже сказал @Karthik, часто дата не самая лучшая идея. По моему опыту всегда имело смысл разделять ваши данные в зависимости от количества ваших работников. Так что в идеале размер вашего раздела должен быть кратным вашим рабочим Обычно мы используем 120 разделов, так как у нас в рабочей среде 24 человека, и в итоге получается такой код:
new_df = spark.read.csv("some_csv.csv", header="true", escape="\"", quote="\"").repartition(100)
Мы также испытали более высокую производительность при работе с паркетом вместо CSV, что является компромиссом, поскольку данные должны быть прочитаны, перераспределены и снова сохранены, но на этапах анализа это окупилось. Так что, возможно, вам следует рассмотреть это преобразование.