Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man eine Pyspark-String-Spalte effizient in eine Datumsspalte?

Wie konvertiert man eine Pyspark-String-Spalte effizient in eine Datumsspalte?

DDD
DDDOriginal
2024-11-30 11:55:11687Durchsuche

How to Efficiently Convert a Pyspark String Column to a Date Column?

Pyspark-String-Spalte in Datumsformat konvertieren

Bei der Arbeit mit Pyspark kann es erforderlich sein, eine String-Spalte, die Datumsangaben darstellt, in eine DateType-Spalte zu konvertieren. Dies tritt häufig auf, wenn die Daten als Zeichenfolgen erfasst werden.

Um dies zu veranschaulichen, betrachten Sie den folgenden DataFrame mit einer Zeichenfolgenspalte namens STRING_COLUMN im Format MM-TT-JJJJ:

df = spark.createDataFrame([
    ("01-01-2023",),
    ("01-02-2023",),
    ("01-03-2023",),
], ["STRING_COLUMN"])
df.show()

Um STRING_COLUMN in eine DateType-Spalte umzuwandeln, besteht eine Methode darin, die Funktion to_date() zu verwenden, wie im Original vorgeschlagen Versuch:

df.select(to_date(df.STRING_COLUMN).alias("new_date")).show()

Dieser Ansatz kann jedoch dazu führen, dass eine Spalte mit Nullen gefüllt wird. Um dieses Problem zu beheben, sollten Sie eine der folgenden Methoden in Betracht ziehen:

1. to_timestamp-Funktion (Spark 2.2):

Ab Spark 2.2 bietet die to_timestamp()-Funktion eine effizientere und einfachere Möglichkeit, Zeichenfolgen in Zeitstempel zu konvertieren. Es unterstützt die Angabe des Eingabeformats mithilfe des Formatarguments:

df.select(to_timestamp(df.STRING_COLUMN, "MM-dd-yyyy").alias("new_date")).show()

2. unix_timestamp- und from_unixtime-Funktionen (Spark < 2.2):

Für Spark-Versionen vor 2.2 kann eine Kombination aus unix_timestamp- und from_unixtime-Funktionen verwendet werden:

from pyspark.sql.functions import unix_timestamp, from_unixtime

df.select(
    from_unixtime(unix_timestamp(df.STRING_COLUMN, "MM-dd-yyyy")).alias("new_date")
).show()

In beiden Fällen , kann die Methode show() verwendet werden, um die konvertierte DateType-Spalte anzuzeigen.

Das obige ist der detaillierte Inhalt vonWie konvertiert man eine Pyspark-String-Spalte effizient in eine Datumsspalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn