Ausgabe
Gegeben:
val df = Seq((1L, "04-04-2015")).toDF("id", "date")
val df2 = df.withColumn("month", from_unixtime(unix_timestamp($"date", "dd/MM/yy"), "MMMMM"))
df2.show()
Ich habe diese Ausgabe:
+---+----------+-----+
| id| date|month|
+---+----------+-----+
| 1|04-04-2015| null|
+---+----------+-----+
Ich möchte jedoch, dass die Ausgabe wie folgt lautet:
+---+----------+-----+
| id| date|month|
+---+----------+-----+
| 1|04-04-2015|April|
+---+----------+-----+
Wie kann ich das in SparkSQL mit Scala machen?
Lösung
Das sollte es tun:
val df2 = df.withColumn("month", date_format(to_date($"date", "dd-MM-yyyy"), "MMMM"))
df2.show
+---+----------+-----+
| id| date|month|
+---+----------+-----+
| 1|04-04-2015|April|
+---+----------+-----+
HINWEIS:
- Die erste Zeichenfolge (to_date) muss dem Format Ihres vorhandenen Datums entsprechen
- Seien Sie vorsichtig mit: “TT-MM-JJJJ” vs. “MM-TT-JJJJ”
- Die zweite Zeichenfolge (date_format) ist das Format der Ausgabe
Dokumente:
Beantwortet von – Marsellus Wallace
Antwort geprüft von – Senaida (FixError Volunteer)