Apache spark ApacheSpark:如何进行不同的计数和一起计数?

Apache spark ApacheSpark:如何进行不同的计数和一起计数?,apache-spark,Apache Spark,我想同时做一个不同的计数和一个计数。 让我用一个简单的例子来解释你。 这是我的输入数据: arbre;pommier fruit;pomme fruit;pomme fruit;fraise fruit;ichigo arbre;cerisier arbre;abricotier sport;foot sport;rugby arbre;abricotier arbre;abricotier arbre;bananier fruit;ananas sport;basket arbre;abric

我想同时做一个不同的计数和一个计数。 让我用一个简单的例子来解释你。 这是我的输入数据:

arbre;pommier
fruit;pomme
fruit;pomme
fruit;fraise
fruit;ichigo
arbre;cerisier
arbre;abricotier
sport;foot
sport;rugby
arbre;abricotier
arbre;abricotier
arbre;bananier
fruit;ananas
sport;basket
arbre;abricotier
arbre;abricotier
作为输出,我想得到:

//type;count;distinct-count
arbre;9;3
fruit;5;4
sport;3;3
通过单词计数的例子,我可以计算单词出现的时间,这里是count。使用distinct.groupeByKey函数,我计算了distinct count,这里是distinct count

但是,我不知道如何在同一个RDD而不是两个单独的RDD上实现这一点

如果您有关于这个主题的想法、文档或链接,我将非常感谢。

数据:

col1,col2
arbre,pommier
fruit,pomme
fruit,pomme
fruit,fraise
fruit,ichigo
arbre,cerisier
arbre,abricotier
sport,foot
sport,rugby
arbre,abricotier
arbre,abricotier
arbre,bananier
fruit,ananas
sport,basket
arbre,abricotier
arbre,abricotier
使用Spark 2创建数据帧

输出:

+-----+-----+--------+
| col1|count|distinct|
+-----+-----+--------+
|arbre|    8|       4|
|sport|    3|       3|
|fruit|    5|       4|
+-----+-----+--------+

这就是我要找的。你知道我用Java怎么做吗?而且,结果似乎不是我想要的rdd。我说的对吗?结果是一个数据帧,可以使用.rdd函数将其转换为rdd
+-----+-----+--------+
| col1|count|distinct|
+-----+-----+--------+
|arbre|    8|       4|
|sport|    3|       3|
|fruit|    5|       4|
+-----+-----+--------+