如果日期在季度范围内,PySpark 添加列
Posted
技术标签:
【中文标题】如果日期在季度范围内,PySpark 添加列【英文标题】:PySpark add column if date in range by quarter 【发布时间】:2020-07-21 17:21:48 【问题描述】:我有一个df如下:
name date
x 2020-07-20
y 2020-02-13
z 2020-01-21
我需要一个新列,对应的季度为整数,例如
name date quarter
x 2020-07-20 3
y 2020-02-13 1
z 2020-01-21 1
我已将我的季度定义为字符串列表,因此我认为我可以在 col('date') 在季度范围内使用 .withColumn + 但收到错误消息,提示我无法将列转换为布尔值。
【问题讨论】:
【参考方案1】:您可以使用quarter
函数将其提取为整数。
from pyspark.sql.functions import *
df1=spark.createDataFrame([("x","2020-07-20"),("y","2020-02-13"),("z","2020-01-21")], ["name", "date"])
df1.show()
+----+----------+
|name| date|
+----+----------+
| x|2020-07-20|
| y|2020-02-13|
| z|2020-01-21|
+----+----------+
df1.withColumn("quarter", quarter(col("date"))).show()
+----+----------+-------+
|name| date|quarter|
+----+----------+-------+
| x|2020-07-20| 3|
| y|2020-02-13| 1|
| z|2020-01-21| 1|
+----+----------+-------+
【讨论】:
以上是关于如果日期在季度范围内,PySpark 添加列的主要内容,如果未能解决你的问题,请参考以下文章