ich Daten habe, die wie folgt aussehen:pyspark Dataframe API cast (‚Zeitstempel‘) funktioniert nicht auf Zeitstempel Strings
{"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"}
Ich bin Gießen das createdAt
Feldes wie folgt zu.
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()
Ausgabe ich bekomme ist wie folgt. Ich bekomme keine Werte für createdAt
. Was kann ich tun, um das Feld als richtigen Zeitstempel abzurufen?
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)]
BTW, welche Version von 'Apache Spark' verwenden Sie? –
Ich benutze 1.6.2 – Gopala