私はSparkRデータフレームを持っていたグループの最後の値を取得する:スパーク
#Create R data.frame
custId <- c(rep(1001, 5), rep(1002, 3), 1003)
date <- c('2013-08-01','2014-01-01','2014-02-01','2014-03-01','2014-04-01','2014-02-01','2014-03-01','2014-04-01','2014-04-01')
desc <- c('New','New','Good','New', 'Bad','New','Good','Good','New')
newcust <- c(1,1,0,1,0,1,0,0,1)
df <- data.frame(custId, date, desc, newcust)
#Create SparkR DataFrame
df <- createDataFrame(df)
display(df)
custId| date | desc | newcust
--------------------------------------
1001 | 2013-08-01| New | 1
1001 | 2014-01-01| New | 1
1001 | 2014-02-01| Good | 0
1001 | 2014-03-01| New | 1
1001 | 2014-04-01| Bad | 0
1002 | 2014-02-01| New | 1
1002 | 2014-03-01| Good | 0
1002 | 2014-04-01| Good | 0
1003 | 2014-04-01| New | 1
newcust
は新しい顧客に新しいcustId
が表示されるすべての時間を示し、または同じcustId
のdesc
戻しますと「新しい場合'私が得たいのは、各グループごとに最初のdate
を維持しながら、newcust
の各グループの最後のdesc
の値です。以下は取得したいDataFrameです。スパークでどうすればいいですか? PySparkまたはSparkRのいずれかのコードが動作します。
#What I want
custId| date | newcust | finaldesc
----------------------------------------------
1001 | 2013-08-01| 1 | New
1001 | 2014-01-01| 1 | Good
1001 | 2014-03-01| 1 | Bad
1002 | 2014-02-01| 1 | Good
1003 | 2014-04-01| 1 | New