在PySpark中,我们可以使用withColumn
和split
函数来保留日期中的年份和月份。下面是一个示例代码:
from pyspark.sql.functions import col, split
# 创建一个示例数据集
data = [("2022-01-01", 100),
("2022-02-15", 200),
("2022-03-20", 300)]
df = spark.createDataFrame(data, ["date", "value"])
# 使用split函数将日期拆分为年份和月份
df = df.withColumn("year", split(col("date"), "-").getItem(0))
df = df.withColumn("month", split(col("date"), "-").getItem(1))
# 删除原始日期列
df = df.drop("date")
df.show()
输出结果如下:
+-----+-----+
|value|month|
+-----+-----+
| 100| 01|
| 200| 02|
| 300| 03|
+-----+-----+
在上面的代码中,我们首先导入了col
和split
函数。然后,我们创建了一个示例数据集data
,包含日期和值两列。接下来,我们使用withColumn
函数和split
函数将日期列拆分为年份和月份,并将它们添加为新的列。最后,我们使用drop
函数删除原始的日期列。