1

sparkR に という DataFrame がありpgzます。と が含まれていuser_idますtime。固定の user_id の場合、k取得します

y <- filter(pgz, pgz$user_id == k)

入力するhead(y)と、 user_id のいくつかの時間が表示されますk。"2005-02-04" 、 "2005-06-06" ..すべてソートされているため、増加します。このために、彼が私が設定した固定時間よりも長いuser_idかどうかをテストしたいと思いますtimes

fixtime <- "2010-01-01"

fixtime よりも大きいすべての user_id を保存したいと思います。これはどのように行うことができますか?

4

1 に答える 1

1

まず、テストするサンプルデータを作成しましょう

set.seed(1)
dd = data.frame(id = base::sample(1:3, 4,TRUE), 
                times = base::sample(c("2005-02-04" , "2005-06-06", "2007-02-04" , "2006-06-06"), 
                                     12, TRUE))
dd$times = as.Date(dd$times)
NROW(dd[dd$id==1 & dd$times > as.Date("2006-01-01"),])

このデータセットでは、答え 2 が得られるはずです。

Spark データ フレームの作成

dd_sp = createDataFrame(sqlContext, dd) 

そしてフィルタリング

dd_sp_k = filter(dd_sp, dd_sp$id== 1 & 
             dd_sp$times > as.Date("2006-01-01"))

次にsummarise、データフレームの長さを取得するために使用できます

## This seems a bit clunky, bit it works.
summarize(dd_sp_k, count = n(dd_sp_k$times)) %>%
  head

これは 2 を与えます。

于 2015-08-27T11:00:00.507 に答える