2016-12-14 3 views
-1

私は別個のカウントとカウントを同時にしたいと思います。 簡単な例を使って説明しましょう。ので、ここで(私は単語が表示される時間の数を計算することができ、ワード数例でApache Spark:別個のカウントを行い、一緒に数えますか?

//type;count;distinct-count 
arbre;9;3 
fruit;5;4 
sport;3;3 

:、私はそれを取得したい出力として

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 

: は、ここに私の入力データでありますカウントです)。そして関数distinct().groupeByKey()では、私は別個のカウントを計算することができます(ここでは別個のカウントです)。

しかし、私は同じRDD上でそれを行う方法を理解することはできません.2つの別々のRDDではできません。

この件に関するアイデア、ドキュメント、リンクがあれば、私は非常に感謝しています。

答えて

3

データ:2

val df = sqlContext.read.option("header", "true").option("inferSchema", "true").csv("filelocation") 

df.show 

import sqlContext.implicits._ 

import org.apache.spark.sql.functions._ 

//Applying count and distinct count 
df.groupBy("col1") 
    .agg(count("col2").alias("count"), countDistinct("col2").alias("distinct")) 
    .show 

スパークを使用してデータフレームを作成する

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 

は出力:

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

これは私が探していますものです。私がJavaでそれをどうやってやれるか知っていますか? –

+0

さらに、結果は私が持っていたいと思うrddではないようです。私は正しい? –

+1

結果はデー​​タフレームで、.rdd()関数を使用してrddに変換できます –

関連する問題