1

sparkR に DataFrame X があります。X には、ID = 1 2 3 1 2 3 9 ... の列と、各エントリのスコア: スコア = 1241 233 20100 ... が含まれます。

したがって、ID のすべてのスコアを見つけるには

s=filter(X, X$ID==1)

次に、合計を取ることができる ID 1 のすべてのスコアを取得します。

XでID=1の数を知りたいのでSparkRのcount関数を使う

count(s)

しかし、これは計算に非常に時間がかかります。これを行うより良い方法はありますか?

ID = 1 1 1 2 3 3 3 4 ..... のように X を配置またはソートしたと仮定すると、 count(s) を実行しないようにするためのより良い代替手段があるかもしれません。

4

1 に答える 1

0

ID を集計してアイテムの数をカウントすると、すべての ID の結果がすぐに得られますが、100000 行しかないため、それほど時間はかかりません。

countedData <- agg(groupBy(X, "ID"), count = n(X[["score"]]))
于 2015-08-06T13:53:29.843 に答える