title: Spark copying dataframe columns best practice in Python/PySpark?
body: <p>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.</p>
  
  <p>Example schema is: 
  <strong>input DFinput (colA, colB, colC) and 
  output DFoutput (X, Y, Z)</strong></p>
  
  <p>I want to copy DFInput to DFOutput as follows <strong>(colA => Z, colB => X, colC => Y).</strong></p>
  
  <p>What is the best practice to do this in Python Spark 2.3+ ?
  Should I use <strong><em>DF.withColumn()</em></strong> method for each column to copy source into destination columns? 
  Will this perform well given billions of rows each with 110+ columns to copy? </p>
  
  <p>Thank you</p>