title: pyspark Dataframe API cast('timestamp') does not work on timestamp strings
body: <p>I have data that looks like this:</p>
  
  <pre><code>{"id":1,"createdAt":"2016-07-01T16:37:41-0400"}
  {"id":2,"createdAt":"2016-07-01T16:37:41-0700"}
  {"id":3,"createdAt":"2016-07-01T16:37:41-0400"}
  {"id":4,"createdAt":"2016-07-01T16:37:41-0700"}
  {"id":5,"createdAt":"2016-07-06T09:48Z"}
  {"id":6,"createdAt":"2016-07-06T09:48Z"}
  {"id":7,"createdAt":"2016-07-06T09:48Z"}
  </code></pre>
  
  <p>I am casting the <code>createdAt</code> field to timestamp as follows.</p>
  
  <pre><code>from pyspark.sql import SQLContext
  from pyspark.sql.functions import *
  
  sqlContext = SQLContext(sc)
  df = sqlContext.read.json('data/test.json')
  dfProcessed = df.withColumn('createdAt', df.createdAt.cast('timestamp'))
  
  dfProcessed.printSchema()
  dfProcessed.collect()
  </code></pre>
  
  <p>Output I get is as follows. I get None values for <code>createdAt</code>. What can I do to get the field retrieved as a proper timestamp?</p>
  
  <pre><code>root
   |-- createdAt: timestamp (nullable = true)
   |-- id: long (nullable = true)
  
  [Row(createdAt=None, id=1),
   Row(createdAt=None, id=2),
   Row(createdAt=None, id=3),
   Row(createdAt=None, id=4),
   Row(createdAt=None, id=5),
   Row(createdAt=None, id=6),
   Row(createdAt=None, id=7)]
  </code></pre>