当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark SQL Functions date_add方法用法及代码示例


PySpark 的 date_add(-) 方法将指定的天数添加到日期列。

参数

1.start |

开始日期列。

2. days | int

要添加的天数。

返回值

pyspark.sql.column.Column 对象。

例子

基本用法

考虑以下 DataFrame :

df = spark.createDataFrame([["2023-04-20"], ["2023-04-22"]], ["my_date"])
df.show()



+----------+
|   my_date|
+----------+
|2023-04-20|
|2023-04-22|
+----------+

要在我们的专栏中添加 5 天:

from pyspark.sql import functions as F
df.select(F.date_add("my_date", 5)).show()



+--------------------+
|date_add(my_date, 5)|
+--------------------+
|          2023-04-25|
|          2023-04-27|
+--------------------+

将一列天数添加到一列日期中

不幸的是,date_add(-) 方法仅接受第二个参数的常量。要将一列天添加到一列日期中,我们必须采取另一种方法。

为了进行演示,请考虑以下PySpark DataFrame:

df = spark.createDataFrame([["2023-04-20", 3], ["2023-04-22", 5]], ["my_date", "my_days"])
df.show()



+----------+-------+
|   my_date|my_days|
+----------+-------+
|2023-04-20|      3|
|2023-04-22|      5|
+----------+-------+

要将 my_days 添加到 my_date ,请在 F.expr() 方法中提供以下 SQL 方法,如下所示:

# Cast to INT first - by default, intgers have type BIGINT (F.expr(-) with raise an error)
df = df.withColumn("my_days", df["my_days"].cast("int"))
df_new = df_new.withColumn("new_date", F.expr("date_add(my_date, my_days)"))
df_new.show()



+----------+-------+----------+
|   my_date|my_days|  new_date|
+----------+-------+----------+
|2023-04-20|      3|2023-04-23|
|2023-04-22|      5|2023-04-27|
+----------+-------+----------+

所得列的数据类型如下:

df_new.printSchema()



root
 |-- my_date: string (nullable = true)
 |-- days: integer (nullable = true)
 |-- new_date: date (nullable = true)

请注意,尽管 my_date 的类型为 string ,但生成的 new_date 的类型为 date

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | date_add method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。