在一列中,我得到了年份ex.2022,我想加载数据为2022-23,如果年份是2021,我想在pyspark和python中将其设置为2021-2022

wooyq4lh  于 2023-04-05  发布在  Spark
关注(0)|答案(2)|浏览(138)

在一列中,我得到了年份ex.2022,我想加载数据为2022-23,如果年份是2021,我想在pyspark和python中将其设置为2021-22。如何才能做到这一点

kmpatx3s

kmpatx3s1#

您可以将值作为1添加到year值。

df =spark.createDataFrame([(2022,),(2021,)],['year'])
df.withColumn("year_add", concat_ws("-",col("year"),col("year")+1)).show(10,False)
#+----+---------+
#|year|year_add |
#+----+---------+
#|2022|2022-2023|
#|2021|2021-2022|
#+----+---------+
u5rb5r59

u5rb5r592#

您的数据框

+----+
|year|
+----+
|2020|
|2021|
|2022|
|2023|
+----+

试试这个

df \
.withColumn("period", concat(col("year"), lit("-"), (col("year")+1).substr(3, 2))) \
.show(10,False)

输出

+----+-------+
|year|period |
+----+-------+
|2020|2020-21|
|2021|2021-22|
|2022|2022-23|
|2023|2023-24|
+----+-------+

相关问题