[FIXED] Wie rufe ich den Monat aus den Werten einer Datumsspalte im Scala-Datenrahmen ab?

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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like