title: Rename pivoted and aggregated column in PySpark Dataframe
body: <p>With a dataframe as follows:</p>
  
  <pre><code>from pyspark.sql.functions import avg, first
  
  rdd = sc.parallelize(
      [
          (0, "A", 223,"201603", "PORT"), 
          (0, "A", 22,"201602", "PORT"), 
          (0, "A", 422,"201601", "DOCK"), 
          (1,"B", 3213,"201602", "DOCK"), 
          (1,"B", 3213,"201601", "PORT"), 
          (2,"C", 2321,"201601", "DOCK")
      ]
  )
  df_data = sqlContext.createDataFrame(rdd, ["id","type", "cost", "date", "ship"])
  
  df_data.show()
  </code></pre>
  
  <p>I do a pivot on it,</p>
  
  <pre><code>df_data.groupby(df_data.id, df_data.type).pivot("date").agg(avg("cost"), first("ship")).show()
  
  +---+----+----------------+--------------------+----------------+--------------------+----------------+--------------------+
  | id|type|201601_avg(cost)|201601_first(ship)()|201602_avg(cost)|201602_first(ship)()|201603_avg(cost)|201603_first(ship)()|
  +---+----+----------------+--------------------+----------------+--------------------+----------------+--------------------+
  |  2|   C|          2321.0|                DOCK|            null|                null|            null|                null|
  |  0|   A|           422.0|                DOCK|            22.0|                PORT|           223.0|                PORT|
  |  1|   B|          3213.0|                PORT|          3213.0|                DOCK|            null|                null|
  +---+----+----------------+--------------------+----------------+--------------------+----------------+--------------------+
  </code></pre>
  
  <p>But I get these really complicated names for the columns. Applying <code>alias</code> on the aggregation usually works, but because of the <code>pivot</code> in this case the names are even worse:</p>
  
  <pre><code>+---+----+--------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+------------------------------------------------------------------+
  | id|type|201601_(avg(cost),mode=Complete,isDistinct=false) AS cost#1619|201601_(first(ship)(),mode=Complete,isDistinct=false) AS ship#1620|201602_(avg(cost),mode=Complete,isDistinct=false) AS cost#1619|201602_(first(ship)(),mode=Complete,isDistinct=false) AS ship#1620|201603_(avg(cost),mode=Complete,isDistinct=false) AS cost#1619|201603_(first(ship)(),mode=Complete,isDistinct=false) AS ship#1620|
  +---+----+--------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+------------------------------------------------------------------+
  |  2|   C|                                                        2321.0|                                                              DOCK|                                                          null|                                                              null|                                                          null|                                                              null|
  |  0|   A|                                                         422.0|                                                              DOCK|                                                          22.0|                                                              PORT|                                                         223.0|                                                              PORT|
  |  1|   B|                                                        3213.0|                                                              PORT|                                                        3213.0|                                                              DOCK|                                                          null|                                                              null|
  +---+----+--------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+------------------------------------------------------------------+--------------------------------------------------------------+------------------------------------------------------------------+ 
  </code></pre>
  
  <p>Is there a way to rename the column names on the fly on the pivot and aggregation? </p>