to_date は Spark 3.0 で日付を解析できません 質問する

to_date は Spark 3.0 で日付を解析できません 質問する

を使用して日付を解析しようとしていますto_date()が、次の例外が発生します。

SparkUpgradeException: Spark 3.0 へのアップグレードにより、異なる結果が返される場合があります: 新しいパーサーで '12/1/2010 8:26' を解析できません。 spark.sql.legacy.timeParserPolicy を LEGACY に設定して Spark 3.0 より前の動作を復元するか、CORRECTED に設定して無効な日時文字列として処理することができます。

例外は、レガシー Time Parser を使用する必要があることを示唆していますが、まず、レガシーに設定する方法がわかりません。

これが私の実装です

dfWithDate = df.withColumn("date", to_date(col("InvoiceDate"), "MM/dd/yyyy"))

私の日付は次の形式です

+--------------+
|   InvoiceDate|
+--------------+
|12/1/2010 8:26|
|12/1/2010 8:26|
|12/1/2010 8:26|
|12/1/2010 8:26|
|12/1/2010 8:26|

ベストアンサー1

spark.sql("set spark.sql.legacy.timeParserPolicy=LEGACY")
df.withColumn("date", to_date(col("InvoiceDate"), "MM/dd/yyyy")).show()


+--------------+----------+
|   InvoiceDate|      date|
+--------------+----------+
|12/1/2010 8:26|2010-12-01|
+--------------+----------+

# in above code spark refers SparkSession

おすすめ記事