2 votes

Apache Spark soustrait les jours de la colonne timestamp

J'utilise Spark Dataset et j'ai des difficultés à soustraire des jours d'une colonne d'horodatage.

Je voudrais soustraire les jours de la colonne Horodatage et obtenir une nouvelle colonne avec un format de date complet. Exemple :

2017-09-22 13:17:39.900 - 10 ----> 2017-09-12 13:17:39.900

Avec les fonctions date_sub, j'obtiens 2017-09-12 sans 13:17:39.900.

6voto

user6910411 Points 32156

Vous cast données à timestamp y expr pour soustraire un INTERVAL :

import org.apache.spark.sql.functions.expr

val df = Seq("2017-09-22 13:17:39.900").toDF("timestamp")

df.withColumn(
  "10_days_before", 
  $"timestamp".cast("timestamp") - expr("INTERVAL 10 DAYS")).show(false)

+-----------------------+---------------------+
|timestamp              |10_days_before       |
+-----------------------+---------------------+
|2017-09-22 13:17:39.900|2017-09-12 13:17:39.9|
+-----------------------+---------------------+

Si les données sont déjà des TimestampType vous pouvez sauter cast .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X