小编shu*_*put的帖子

SPARK DataFrame:如何基于相同的列值为每个组有效地拆分数据框

我有一个生成的DataFrame,如下所示:

df.groupBy($"Hour", $"Category")
  .agg(sum($"value").alias("TotalValue"))
  .sort($"Hour".asc,$"TotalValue".desc))
Run Code Online (Sandbox Code Playgroud)

结果如下:

+----+--------+----------+
|Hour|Category|TotalValue|
+----+--------+----------+
|   0|   cat26|      30.9|
|   0|   cat13|      22.1|
|   0|   cat95|      19.6|
|   0|  cat105|       1.3|
|   1|   cat67|      28.5|
|   1|    cat4|      26.8|
|   1|   cat13|      12.6|
|   1|   cat23|       5.3|
|   2|   cat56|      39.6|
|   2|   cat40|      29.7|
|   2|  cat187|      27.9|
|   2|   cat68|       9.8|
|   3|    cat8|      35.6|
| ...|    ....|      ....|
+----+--------+----------+
Run Code Online (Sandbox Code Playgroud)

我想根据每个独特的价值作出新的dataframes col("Hour"),即

  • 对于小时== 0的组
  • 对于小时== 1的组
  • 对于小时== 2的组,依此类推...

因此,所需的输出将是:

df0 as:

+----+--------+----------+
|Hour|Category|TotalValue| …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark parquet apache-spark-sql spark-dataframe

8
推荐指数
1
解决办法
2万
查看次数