关于数据框:如何使用Spark(Java)在数据集的所有列上并行应用相同的功能

How to apply same function on all of the columns of a dataset in parallel using Spark(Java)

我有一个具有某些分类特征的数据集。我正在尝试将完全相同的功能应用于Spark框架中的所有这些分类功能。我的第一个假设是,我可以将每个功能的操作与其他功能的操作并行化。但是我不知道是否有可能(阅读这篇文章后感到困惑)。

例如,假设我的数据集如下:

1
2
3
4
feature1, feature2, feature3
blue,apple,snake
orange,orange,monkey
blue,orange,horse

我想分别计算每个特征的每个类别的出现次数。例如Feature1 (blue=2, orange=1)


TL; DR Spark SQL的数据帧不是按列而是按行拆分,因此除非您使用类似select的运算符拆分源数据集,否则Spark会按任务(不是列)处理一组行。

如果要:

count the number of occurrences of each category for each feature, separately

仅使用groupBycount(可能与join一起使用)或使用窗口(具有窗口聚合功能)。