Spark DataFrame TimestampType - comment faire pour obtenir l'Année, le Mois, le Jour, les valeurs de champ?
J'ai de l'Étincelle DataFrame à prendre(5) lignes comme suit:
[Row(date=datetime.datetime(1984, 1, 1, 0, 0), hour=1, value=638.55),
Row(date=datetime.datetime(1984, 1, 1, 0, 0), hour=2, value=638.55),
Row(date=datetime.datetime(1984, 1, 1, 0, 0), hour=3, value=638.55),
Row(date=datetime.datetime(1984, 1, 1, 0, 0), hour=4, value=638.55),
Row(date=datetime.datetime(1984, 1, 1, 0, 0), hour=5, value=638.55)]
C'est le schéma est défini comme:
elevDF.printSchema()
root
|-- date: timestamp (nullable = true)
|-- hour: long (nullable = true)
|-- value: double (nullable = true)
Comment puis-je obtenir de l'Année, le Mois, le Jour, les valeurs à partir de la date de champ?
InformationsquelleAutor curtisp | 2015-06-20
Vous devez vous connecter pour publier un commentaire.
Depuis Étincelle 1.5 vous pouvez utiliser un certain nombre de date de fonctions de traitement:
pyspark.sql.fonctions.année
pyspark.sql.fonctions.mois
pyspark.sql.fonctions.dayofmonth
pyspark.sql.fonctions.dayofweek()
pyspark.sql.fonctions.dayofyear
pyspark.sql.fonctions.weekofyear()
Vous pouvez utiliser de simples
map
comme avec tous les autres RDD:et le résultat est:
Btw:
datetime.datetime
les magasins une heure de toute façon donc les garder séparément semble être un gaspillage de mémoire.elevDF.map(lambda (date, value): (date.year, value))
Vous pouvez utiliser les fonctions
pyspark.sql.functions
: les fonctions commeyear
,month
,etc
reportez-vous ici: https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.DataFrame