2017-05-30 1 views
0

Quelqu'un peut-il dire comment ajouter des jours à des jours déjà existants.Exemple: Je veux ajouter 30 jours pour commencer la date et je veux l'obtenir imprimé. J'essaie cetteAjouter des jours à ce jour dans Velocity

set($pageParameters.wiEndDate = ($pageParameters.wiStartDate+ 30)) 

Mais il ne fonctionne pas. Quelqu'un peut-il dire qu'il y a une API ou comment obtenir? Merci

Répondre

0

Si vous cherchez à ajouter un jour dans un champ DateType vous pouvez utiliser une fonction org.apache.spark.sql.functions._date_add(column, no of days)

Vous pouvez ajouter un mois si vous voulez dans un champ DateType existant avec org.apache.spark.sql.functions._add_months() fonction

ici est un exemple simple pour vous rendre clair.

val spark = 
    SparkSession.builder().master("local").appName("test").getOrCreate() 

    import spark.implicits._ 

    val data = spark.sparkContext.parallelize(
    Seq((0, "2016-01-1"), 
     (1, "2016-02-2"), 
     (2, "2016-03-22"), 
     (3, "2016-04-25"), 
     (4, "2016-05-21"), 
     (5, "2016-06-1"), 
     (6, "2016-03-21")) 
).toDF("id", "date") 

    //Cast to date type 
    val data1 = data.withColumn("date", $"date".cast(DateType)) 
    //add 1 month in each row 
    data.withColumn("date", add_months($"date", 1)).show 
    //add 30 days in each row 
    data.withColumn("date", date_add($"date", 30)).show 
+0

Merci pour votre réponse mais il devrait prendre automatiquement la date et il devrait ajouter 30 jours. –

+0

Par exemple, l'utilisateur entrez la date de début 20-04-2016 et la date de fin 30-06-2016.Il devrait automatiquement ajouter 30 jours pour commencer les jours et afficher la sortie en tant que 20-05-2016 Merci –

+0

Je din't utiliser la colonne, je juste utilisé deux variables date de fin et la date de début –