Ausgabe
Ich habe eine CSV-Datei mit der Datumsspalte. Das Datum kommt in einem seltsamen Format. Nachfolgend einige Beispiele:
- 9. Mai 2022
- 17.09.2022
- 09. Juni 2022
Ich erstelle einen Glue-Job, um Daten in Redshift zu laden.
Wie konvertiere ich diese seltsam aussehende Zeichenfolge in das Format YYYY-MM-DD mit dem pyspark-Datenrahmen.
Lösung
Sie können to_date
das Quellformat — verwenden und weitergeben "MMMM 'the' d'th of' yyyy"
.
Wie von blackbishop erzogen, verwenden "MMMM 'the' dd['st']['nd']['rd']['th'] 'of' yyyy"
, um alle Fälle zu behandeln (1., 2., 3., 4. …)
spark.sparkContext.parallelize([('May the 9th of 2022',), ('September the 17th of 2022',)]).toDF(['dt_str']). \
withColumn('dt', func.to_date('dt_str', "MMMM 'the' d'th of' yyyy")). \
show(truncate=False)
# +--------------------------+----------+
# |dt_str |dt |
# +--------------------------+----------+
# |May the 9th of 2022 |2022-05-09|
# |September the 17th of 2022|2022-09-17|
# +--------------------------+----------+
Beantwortet von – samkart
Antwort geprüft von – Jay B. (FixError Admin)