ホームページ >バックエンド開発 >Python チュートリアル >Pyspark の文字列列を日付列に効率的に変換するにはどうすればよいですか?

Pyspark の文字列列を日付列に効率的に変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-30 11:55:11691ブラウズ

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

Pyspark の文字列列を日付形式に変換する

Pyspark を使用する場合、日付を表す文字列列を DateType 列に変換する必要がある場合があります。これは、データが文字列として取り込まれるときによく発生します。

これを説明するために、MM-dd-yyyy 形式の STRING_COLUMN という名前の文字列列を持つ次のデータフレームを考えてみましょう:

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

STRING_COLUMN を DateType 列に変換するには、元の記事で提案されているように、to_date() 関数を使用する方法があります。試行:

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

ただし、このアプローチでは列が null で埋められる可能性があります。これに対処するには、次のいずれかの方法の使用を検討してください。

1. to_timestamp 関数 (Spark 2.2 ):

Spark 2.2 以降、 to_timestamp() 関数は文字列をタイムスタンプに変換するためのより効率的かつ簡単な方法を提供します。これは、format 引数を使用した入力形式の指定をサポートしています:

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

2。 unix_timestamp 関数と from_unixtime 関数 (Spark < 2.2):

2.2 より前の Spark バージョンでは、unix_timestamp 関数と from_unixtime 関数の組み合わせを使用できます:

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()

どちらの場合も、show() メソッドを使用して、変換された DateType を表示できます。コラム

以上がPyspark の文字列列を日付列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。