以下は私のデータセットです。
user,device,time_spent,video_start
userA,mob,5,1
userA,desk,5,2
userA,desk,5,3
userA,mob,5,2
userA,mob,5,2
userB,desk,5,2
userB,mob,5,2
userB,mob,5,2
userB,desk,5,2
ユーザーごとに以下の集計を調べたい。
user total_time_spent device_distribution
userA 20 {mob:60%,desk:40%}
userB 20 {mob:50%,desk:50%}
できればJavaでspark 2.0 APIを使用してこれを達成するのを手伝ってもらえますか。UserDefinedAggregateFunction を使用してみましたが、デバイスごとに各ユーザー グループをグループ化して、各デバイスで費やされた集計時間を見つける必要があるため、グループ内のグループはサポートされていません。