У меня есть набор данных следующей структуры
| year| id | data |min_week|max_week||
|2017 | 1 | [32,21,34] | 1| 3||
|2017 | 2 | [132, 121, 134] | 1| 3||
|2018 | 1 | [5, 3, 3,0,1] | 1| 5||
|2018 | 2 | [15, 13, 13] | 1| 3||
Я хочу, чтобы данные были уплощены после сортировки по годам, что-то вроде этого
| min_year|max_year| id | data|min_week|max_week||
|---------+--------+----+------------------------+--------+--------||
| 2017| 2018| 1 | [32,21,34,5,3,3, 0, 1]| 1| 5||
| 2017| 2018| 2 | [132,121,134,15,13,13]| 1| 3||
Я пытался следующее, но это не дает то, что я хочу
case class WeeklyData
(id: Long,
min_week: Int,
max_week: Int,
data: List[Int],
year: Int
)
val data = spark.read.parquet("s3://path")
.as[WeeklyData]
.groupByKey(k => (k.product_id, k.year))
.mapGroups(
(k, iter) => {
val s = iter
.toList
.sortBy(_.year)
.flatMap(_.data)
s
}
)