给出一个像这样的列:
+----------+
| firstName|
+----------+
| bob |
| jack |
| bob |
+----------+
我想以下列格式输出频率分布: bob - > 2 即可。我试图在Scala / Spark Data框架中创建UDF。最终目标是给定一个数据帧,我可以输出数据帧中每列的频率分布。
def freqDist(col: Column): Column = {
//need help with this part
}
val freqDist = df.map(ct => freqDist(col(ct._1))).toList
//iterate through each column and compute the freqDist like so
新方法:
val freqDist = df.dtypes.map(ct => {df.select(ct._1).groupBy(col(ct._1)).count()})
这给了我每列的freqDist,但freqDist的类型现在是一个数据帧数组。如何将所有数据帧聚合为一个?