Fügen Sie die Anzahl der Tage, die Spalte Datum Spalte im gleichen dataframe für Spark-Scala-App
Ich habe eine dataframe
df von columns
("id", "current_date", "days")
und ich bin versucht hinzuzufügen, die die "days
" zu "current_date
" und erstellen Sie eine neue dataframe
mit neuen column
genannt "new_date
" mit spark-scala-Funktion date_add()
val newDF = df.withColumn("new_Date", date_add(df("current_date"), df("days").cast("Int")))
Aber sieht aus wie die Funktion date_add
akzeptiert nur Int
Werte und nicht columns
. Wie kann die gewünschte Ausgabe erhalten in einem solchen Fall? Gibt es alternative Funktionen, die ich verwenden können, um die gewünschte Ausgabe erhalten?
spark version: 1.6.0
scala version: 2.10.6
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine kleine benutzerdefinierte udf verwendet werden kann, um dieses Datum-Arithmetik möglich.
Nutzung:
Keine Notwendigkeit, eine UDF, kann man es mit einem SQL-Ausdruck:
expr
und direkt verwenden (in der Funke 2.1+)val newDF = df.withColumn("new_date", date_add($"current_date",days))
val newDF = df.withColumn("new_date", date_add($"current_date",days))
) arbeiten. Heute, in der Spark-2.2, die einzigen Optionen die ich machen kann arbeiten eine UDF oderexpr()
(und ich bevorzuge das UDF). Siehe stackoverflow.com/questions/50222781/... für mehr info.val dt3 = dt2.withColumn("new_date", expr("date_add('Week Start',dummy)"))
könnten Sie mir bitte helfen mit diesem.