У меня есть требование упорядочить значение столбца и сгруппировать другой столбец в кадре данных.
Данные в кадре данных такие, как показано ниже.
+------------+---------+-----+
| NUM_ID| TIME |SIG_V|
+------------+---------+-----+
|XXXXX01 |167499000|55 |
|XXXXX02 |167499000| |
|XXXXX01 |167503000| |
|XXXXX02 |179810000| 81.0|
|XXXXX02 |179811000| 81.0|
|XXXXX01 |179833000| |
|XXXXX02 |179833000| |
|XXXXX02 |179841000| 81.0|
|XXXXX01 |179841000| |
|XXXXX02 |179842000| 81.0|
|XXXXX03 |179843000| 87.0|
|XXXXX02 |179849000| |
|XXXXX02 |179850000| |
|XXXXX01 |179850000| 88.0|
|XXXXX01 |179857000| |
|XXXXX01 |179858000| |
|XXXXX01 |179865000| |
|XXXXX03 |179865000| |
|XXXXX02 |179870000| |
|XXXXX02 |179871000| 11 |
+--------------------+-------+
Указанные выше данные уже упорядочены ВРЕМЯ столбец.
Мое требование - сгруппировать столбец NUM_ID , как показано ниже.
+------------+---------+-----+
| NUM_ID| TIME |SIG_V|
+------------+---------+-----+
|XXXXX01 |167499000|55 |
|XXXXX01 |167503000| |
|XXXXX01 |179833000| |
|XXXXX01 |179841000| |
|XXXXX01 |179850000| 88.0|
|XXXXX01 |179857000| |
|XXXXX01 |179858000| |
|XXXXX01 |179865000| |
|XXXXX02 |167499000| |
|XXXXX02 |179810000| 81.0|
|XXXXX02 |179811000| 81.0|
|XXXXX02 |179833000| |
|XXXXX02 |179841000| 81.0|
|XXXXX02 |179849000| |
|XXXXX02 |179850000| |
|XXXXX02 |179842000| 81.0|
|XXXXX02 |179870000| |
|XXXXX02 |179871000| 11 |
|XXXXX03 |179843000| 87.0|
|XXXXX03 |179865000| |
+--------------------+-------+
Столбец NUM_ID теперь сгруппирован, и столбец ВРЕМЯ находится в отсортированном порядке для каждого NUM_ID .
Я попытался применить groupBy и orderBy к кадру данных, который не работает.
val df2 = df1.withColumn("SIG_V", col("SIG")).orderBy("TIME").groupBy("NUM_ID")
и получение ошибки при df2.show
error: value orderBy is not a member of org.apache.spark.sql.RelationalGroupedDataset
Есть ли какие-либо сведения для получения требования?