我怎么可以拆分数据帧与在Scala和SPARK相同的列值dataframes [英] How can I split a dataframe into dataframes with same column values in SCALA and SPARK
本文介绍了我怎么可以拆分数据帧与在Scala和SPARK相同的列值dataframes的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用Scala,我怎么可以拆分数据帧分成多个数据框(无论是数组或集合)具有相同的列值。
比如我想要分割以下数据框中:
ID率国家
1 24 AL
2 35 MN
3 46 FL
4 34 AL
5 78 MN
6 99 FL
到
数据组1
ID率国家
1 24 AL
4 34 AL
数据组2
ID率国家
2 35 MN
5 78 MN
数据组3
ID率国家
3 46 FL
6 99 FL
解决方案
您可以收集独有的状态值,简单地映射在结果数组:
VAL状态= df.select(国家)。distinct.collect.flatMap(_。toSeq)
VAL byStateArray = states.map(州=> df.where($国家< = GT;状态))
或来图:
VAL byStateMap =声明
.MAP(州=>(州 - > df.where($国家< = GT;状态)))
.toMap
Using Scala, how can I split dataFrame into multiple dataFrame (be it array or collection) with same column value. For example I want to split the following DataFrame:
ID Rate State
1 24 AL
2 35 MN
3 46 FL
4 34 AL
5 78 MN
6 99 FL
to:
data set 1
ID Rate State
1 24 AL
4 34 AL
data set 2
ID Rate State
2 35 MN
5 78 MN
data set 3
ID Rate State
3 46 FL
6 99 FL
解决方案
You can collect unique state values and simply map over resulting array:
val states = df.select("State").distinct.collect.flatMap(_.toSeq)
val byStateArray = states.map(state => df.where($"State" <=> state))
or to map:
val byStateMap = states
.map(state => (state -> df.where($"State" <=> state)))
.toMap
这篇关于我怎么可以拆分数据帧与在Scala和SPARK相同的列值dataframes的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文