PySpark の「to_date」関数に奇妙なバグを発見しました
from pyspark.sql.functions import to_date, col
from datetime import date
df = spark.createDataFrame([(date(2020,12,26),)], ['t'])
df1 = df.select(to_date(df.t, 'yyyy-MM-dd').alias('dt')).withColumn('fn1',cfg.date_format(col('dt'),'YYYYMMdd'))
df1.show()
これにより、以下の出力が得られます。
しかし、1日後の日付に同じコードを使用すると、
from pyspark.sql.functions import to_date, col
from datetime import date
df = spark.createDataFrame([(date(2020,12,27),)], ['t'])
df1 = df.select(to_date(df.t, 'yyyy-MM-dd').alias('dt')).withColumn('fn1',cfg.date_format(col('dt'),'YYYYMMdd'))
df1.show()
あなたは得るでしょう:
2020 年 12 月 27 日以降の日付についても同様ですが、2020 年 12 月 25 日より前の日付については当てはまりません。

