相关疑难解决方法(0)

如何将数据框拆分为具有相同列值的数据框?

使用Scala,我如何将dataFrame拆分为具有相同列值的多个dataFrame(无论是数组还是集合).例如,我想拆分以下DataFrame:

ID  Rate    State
1   24  AL
2   35  MN
3   46  FL
4   34  AL
5   78  MN
6   99  FL
Run Code Online (Sandbox Code Playgroud)

至:

数据集1

ID  Rate    State
1   24  AL  
4   34  AL
Run Code Online (Sandbox Code Playgroud)

数据集2

ID  Rate    State
2   35  MN
5   78  MN
Run Code Online (Sandbox Code Playgroud)

数据集3

ID  Rate    State
3   46  FL
6   99  FL
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark apache-spark-sql

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

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万
查看次数