Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menukar Lajur Rentetan Pyspark kepada Lajur Tarikh?

Bagaimana untuk Menukar Lajur Rentetan Pyspark kepada Lajur Tarikh?

DDD
Lepaskan: 2024-11-30 11:55:11
asal
756 orang telah melayarinya

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

Menukar Lajur Rentetan Pyspark kepada Format Tarikh

Apabila bekerja dengan Pyspark, adalah perlu untuk menukar lajur rentetan yang mewakili tarikh kepada lajur DateType. Ini biasanya ditemui apabila data diserap sebagai rentetan.

Untuk menggambarkan ini, pertimbangkan DataFrame berikut dengan lajur rentetan bernama STRING_COLUMN dalam format MM-dd-yyyy:

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

Untuk menukar STRING_COLUMN kepada lajur DateType, satu kaedah adalah menggunakan fungsi to_date(), seperti yang dicadangkan dalam asal percubaan:

df.select(to_date(df.STRING_COLUMN).alias("new_date")).show()
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini mungkin menghasilkan lajur yang diisi dengan nol. Untuk menangani perkara ini, pertimbangkan untuk menggunakan salah satu kaedah berikut:

1. Fungsi to_timestamp (Spark 2.2 ):

Bermula dengan Spark 2.2, fungsi to_timestamp() menyediakan cara yang lebih cekap dan mudah untuk menukar rentetan kepada cap masa. Ia menyokong penetapan format input menggunakan argumen format:

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

2. Fungsi unix_timestamp dan from_unixtime (Spark < 2.2):

Untuk versi Spark sebelum 2.2, gabungan fungsi unix_timestamp dan from_unixtime boleh digunakan:

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()
Salin selepas log masuk

Dalam kedua-dua kes , kaedah show() boleh digunakan untuk memaparkan DateType yang ditukar lajur.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Lajur Rentetan Pyspark kepada Lajur Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan