最终我想要的是 DataFrame 中所有列的列模式。对于其他汇总统计信息,我看到了几个选项:使用 DataFrame 聚合,或将 DataFrame 的列映射到向量的 RDD(我也遇到了麻烦)并使用 colStats
来自 MLlib。但我不认为模式是那里的一种选择。
原文由 RKD314 发布,翻译遵循 CC BY-SA 4.0 许可协议
最终我想要的是 DataFrame 中所有列的列模式。对于其他汇总统计信息,我看到了几个选项:使用 DataFrame 聚合,或将 DataFrame 的列映射到向量的 RDD(我也遇到了麻烦)并使用 colStats
来自 MLlib。但我不认为模式是那里的一种选择。
原文由 RKD314 发布,翻译遵循 CC BY-SA 4.0 许可协议
此行将为您提供 spark 数据帧 df 中的“col”模式:
df.groupby("col").count().orderBy("count", ascending=False).first()[0]
对于 df 使用中所有列的模式列表:
[df.groupby(i).count().orderBy("count", ascending=False).first()[0] for i in df.columns]
要添加名称以识别哪一列的模式,制作二维列表:
[[i,df.groupby(i).count().orderBy("count", ascending=False).first()[0]] for i in df.columns]
原文由 Tesia 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答868 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
模式的问题与中位数的问题几乎相同。虽然它很容易计算,但计算却相当昂贵。它可以使用排序后跟本地和全局聚合或使用 just-another-wordcount 和过滤器来完成:
无论哪种方式,它都可能需要对每一列进行完全洗牌。