Если вы работали с PySpark DataFrame, вам, вероятно, приходилось переименовывать столбцы. Либо многократно используя `withColumnRenamed`, либо с помощью `toDF()`. На первый взгляд, оба подхода работают одинаково; вы получаете желаемые переименованные столбцы. Но под капотом они взаимодействуют с направленным ациклическим графом (DAG) Spark совершенно по-разному.
`withColumnRenamed` создает новый слой проекции для каждого переименования, постепенно наращивая трансформации в логическом плане.
`toDF()`, с другой стороны, применяет все переименования за один шаг.
Хотя оба метода оптимизированы для одинакового физического выполнения, их влияние на размер DAG, накладные расходы на планирование и читаемость кода может существенно повлиять на более крупные конвейеры.
dzone.com
Renaming Columns in PySpark: withColumnRenamed vs toDF
Create attached notes ...
