Вы можете попробовать, предположим, что df содержит year1
и year2
.
from pyspark.sql import SparkSession
from pyspark.sql import functions as F
spark = SparkSession.builder.getOrCreate()
years = spark.range(2020).withColumnRenamed('id', 'year')
df = (
df
.withColumn(
‘id’,
F. monotonically_increasing_id()
) # EDIT: There was a missing bracket here
.join(
years,
F.col(‘year’).between(‘year1’, ‘year2’),
)
.groupBy(
‘id’
)
.agg(
F.collect_list(‘year’).alias(‘years’)
)
)
Дайте мне знать, что это не работает.