【发布时间】:2021-05-23 09:48:33
【问题描述】:
输入
+------+------+------+------+
|emp_name|emp_area| dept|zip|
+------+------+------+------+
|ram|USA|"Sales"|805912|
|sham|USA|"Sales"|805912|
|ram|Canada|"Marketing"|805912|
|ram|USA|"Sales"|805912|
|sham|USA|"Marketing"|805912|
+------+------+------+------
期望的输出
feature |Top1 name |Top 1 value1|Top2 name|top 2 value|
emp_name ram |3|sham |2
emp_area Usa |4|canada |1
dept sales|3|Marketing|3
zip 805912|5|NA|NA
我开始为它们中的每一个动态生成计数,但无法将它们存储在数据集中
val features=ds.columns.toList
for (e <- features) {
val ds1=ds.groupBy(e).count().sort(desc("count")).limit(5).withColumnRenamed("count", e+"_count")
}
现在如何将所有值收集到一个数据帧中并转换为输出?
【问题讨论】:
标签: scala apache-spark apache-spark-sql apache-spark-dataset apache-spark-2.0