PySpark ajoute une colonne à un DataFrame à partir d'une colonne TimeStampType

J'ai un DataFrame que ressembler à quelque chose comme ça. Je veux faire fonctionner le jour de la date_time champ.

root
 |-- host: string (nullable = true)
 |-- user_id: string (nullable = true)
 |-- date_time: timestamp (nullable = true)

J'ai essayé d'ajouter une colonne pour extraire la journée. Pour l'instant, mes tentatives ont échoué.

df = df.withColumn("day", df.date_time.getField("day"))

org.apache.spark.sql.AnalysisException: GetField is not valid on fields of type TimestampType;

Cela a également échoué

df = df.withColumn("day", df.select("date_time").map(lambda row: row.date_time.day))

AttributeError: 'PipelinedRDD' object has no attribute 'alias'

Une idée de comment cela peut être fait?

source d'informationauteur Wai Yip Tung