2017-09-22 8 views
0

スパークデータフレームの各列にある別個のアイテムの数を数える方法があるのでしょうか?つまり、このデータセットを考えると、次のとおりです。SparkR。どのようにSpark DataFrameのすべての列の個別の値を数える?

set.seed(123) 
df<- data.frame(ColA=rep(c("dog", "cat", "fish", "shark"), 4), ColB=rnorm(16), ColC=rep(seq(1:8),2)) 
df 

私はカウントを取得するにはRで次の操作を行います。

sapply(df, function(x){length(unique(x))}) 

> ColA ColB ColC 
    4 16 8 

は、どのように私はこのスパークDATAFRAMEのために同じことをやって行くのでしょうか?

sdf<- SparkR::createDataFrame(df) 

ご協力いただきまして誠にありがとうございます。前もって感謝します。 -nate

答えて

1

これはSparkRに私の作品:

exprs = lapply(names(sdf), function(x) alias(countDistinct(sdf[[x]]), x)) 
# here use do.call to splice the aggregation expressions to agg function 
head(do.call(agg, c(x = sdf, exprs))) 

# ColA ColB ColC 
#1 4 16 8 
+1

ありがとうございました。私は2分で受け入れます。 – nate

関連する問題