Spark copying dataframe columns best practice in Python/PySpark?
Use dataframe.withColumn() which Returns a new DataFrame by adding a column or replacing the existing column that has the same name.
This is for Python/PySpark using Spark 2.3.2. 
I am looking for best practice approach for copying columns of one data frame to another data frame using Python/PySpark for a very large data set of 10+ billion rows (partitioned by year/month/day, evenly). Each row has 120 columns to transform/copy. The output data frame will be written, date partitioned, into another parquet set of files.
Example schema is: 
input DFinput (colA, colB, colC) and 
output DFoutput (X, Y, Z)
I want to copy DFInput to DFOutput as follows (colA => Z, colB => X, colC => Y).
What is the best practice to do this in Python Spark 2.3+ ?
Should I use DF.withColumn() method for each column to copy source into destination columns? 
Will this perform well given billions of rows each with 110+ columns to copy? 
Thank you