web-dev-qa-db-ja.com

Pyspark:既存の日付列に10日を追加する方法

Pysparkに「report_date」という日付列を持つデータフレームがあります。

元のreport_date列に10日追加された「report_date_10」という新しい列を作成したい。

以下は私が試したコードです:

df_dc["report_date_10"] = df_dc["report_date"] + timedelta(days=10)

これは私が得たエラーです:

AttributeError:「datetime.timedelta」オブジェクトに属性「_get_object_id」がありません

助けて! THX

5
PineNuts0

列を追加するためにpandas構文を使用しているようです。 sparkの場合、withColumnを使用して新しい列を追加する必要があります。日付を追加するために、組み込みのdate_add 関数:

import pyspark.sql.functions as F
df_dc = spark.createDataFrame([['2018-05-30']], ['report_date'])

df_dc.withColumn('report_date_10', F.date_add(df_dc['report_date'], 10)).show()
+-----------+--------------+
|report_date|report_date_10|
+-----------+--------------+
| 2018-05-30|    2018-06-09|
+-----------+--------------+
9
Psidom